Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 05:28

  • Please register to post and access all features, it's quick, easy and FREE!


HttpWebRequest Travian

Discussion on HttpWebRequest Travian within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2009
Posts: 12
Received Thanks: 1
HttpWebRequest Travian

Hallo Zusammen,

ich habe mich bereits im Forum umgeschaut und kann mich bereits in Travian einloggen und auch die Farmliste starten. Ich scheitere jedoch an dem Gebäude ausbau da ich über Live Http Headers kein Post mitschnitt bekomme so wie es bei einem Login ist.

Wenn ich den Button drücke wird folgendes mitgeschnitten:

Vieleicht könnt Ihr weiter helfen

Quote:
txxxtx.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: txxxtx.com/xxxld.php?id=1
Connection: keep-alive
Cookie: _ga=GA1.2.677607548.1548288473; tt_lang=en; tt_mlang=en; t4level=1; PHPSESSID=ciabkob9mmrtssaau637b2cu16; highlightsToggle=false; c_name=0|Win64|Windows 7|1366px*768px|amd64|-%2C-%2C-; chatmaninwindowtab=0; WMBlueprints=%5B%5D
Upgrade-Insecure-Requests: 1
GET: HTTP/1.1 302 Moved TemporarilyDate: Wed, 30 Jan 2019 23:07:34 GMT
Server: Apache/2.2.15
X-Powered-By: PHP/5.3.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Set-Cookie: tt_lang=en; expires=Wed, 06-Feb-2019 23:07:34 GMT
tt_mlang=en; expires=Wed, 06-Feb-2019 23:07:34 GMT
Location: xxxf1.php
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0, public
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 20
Keep-Alive: timeout=5, max=170
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8


txxxtx.com/xxxld.phpHost: txxxtx.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: txxxtx.com/xxxld.php?id=1
Connection: keep-alive
Cookie: _ga=GA1.2.677607548.1548288473; tt_lang=en; tt_mlang=en; t4level=1; PHPSESSID=ciabkob9mmrtssaau637b2cu16; highlightsToggle=false; c_name=0|Win64|Windows 7|1366px*768px|amd64|-%2C-%2C-; chatmaninwindowtab=0; WMBlueprints=%5B%5D
Upgrade-Insecure-Requests: 1
GET: HTTP/1.1 200 OKDate: Wed, 30 Jan 2019 23:07:34 GMT
Server: Apache/2.2.15
X-Powered-By: PHP/5.3.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Set-Cookie: tt_lang=en; expires=Wed, 06-Feb-2019 23:07:34 GMT
tt_mlang=en; expires=Wed, 06-Feb-2019 23:07:34 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0, public
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=5, max=169
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8



Najix3 is offline  
Old 02/02/2019, 17:21   #2
Moderator



 
elite*gold: 409
The Black Market: 233/0/0
Join Date: Apr 2011
Posts: 9,114
Received Thanks: 2,150
Quote:
Originally Posted by Najix3 View Post
Hallo Zusammen,

ich habe mich bereits im Forum umgeschaut und kann mich bereits in Travian einloggen und auch die Farmliste starten. Ich scheitere jedoch an dem Gebäude ausbau da ich über Live Http Headers kein Post mitschnitt bekomme so wie es bei einem Login ist.

Wenn ich den Button drücke wird folgendes mitgeschnitten:
[...]
Vieleicht könnt Ihr weiter helfen
Kleiner Tipp vorab, du brauchst Live Http Headers nicht. Schon sehr lange kann man im Browser deiner Wahl die Requests anschauen. Dafür einfach die Entwickler-Tools öffnen (meistens F12) und in den Tab "Netzwerk" (o.ä.) gehen.
Dort findest du dann alle Requests, kannst diese Filtern und natürlich auch Header, Parameter und co. nach schauen.

Beim login wird POST genutzt damit dein Benutzername und (vorallem) dein Passwort nicht oben an der Url als Parameter dran gehangen wird.
Zueinem könnte dann jemand der neben dir ist dein Paswort sehen zum anderen würde dein Passwort im Server Log mit geloggt werden.

Habe mir das ganze mal kurz angeschaut und das ausbauen eines Gebäudes ist relativ einfach, dazu holst du dir einfach den Quellcode der Gebäude Seite (Sprich einfach ein GET Request). Als Beispiel nehme ich jetzt einfach mal das Versteck
Code:
https://ts4.travian.de/build.php?id=30
Sobald du den Quellcode hast suchst du einfach die Stelle raus wo der Button zum ausbauen ist und parst die richtige Url.
Ausschnitt vom Quellcode :
Code:
<div class="upgradeButtonsContainer section2Enabled">

    <div class="section1">
        <button type="button" value="Ausbau auf Stufe 2" id="button5c55c0b8c9c0c" class="green build" onclick="window.location.href = 'dorf2.php?a=30&amp;c=a27489'; return false;">
	<div class="button-container addHoverClick">
		<div class="button-background">
			<div class="buttonStart">
				<div class="buttonEnd">
					<div class="buttonMiddle"></div>
				</div>
			</div>
		</div>
		<div class="button-content">Ausbau auf Stufe 2</div>
	</div>
</button>
<script type="text/javascript" id="button5c55c0b8c9c0c_script">
	jQuery(function() {
        jQuery('button#button5c55c0b8c9c0c').click(function () {
            jQuery(window).trigger('buttonClicked', [this, {"type":"button","value":"Ausbau auf Stufe 2","name":"","id":"button5c55c0b8c9c0c","class":"green build","title":"","confirm":"","onclick":"window.location.href = \u0027dorf2.php?a=30\u0026amp;c=a27489\u0027; return false;"}]);
        });
	});
</script>
<div class="clear"></div><div class="inlineIcon clocks"><i class="clock"></i><span class="value ">0:10:50</span></div>    </div>

    <div class="section2">
        <button type="button" value="Ausbau **25‬%‬ schneller" id="button5c55c0b8c9d4d" class="green build videoFeatureButton" onclick="jQuery(window).trigger('showVideoWindow', {'data' : {'cmd': 'adSalesVideo', 'uid': '3404', 'gid': '23', 'lvl' : '1', 'buildingPlotId': '30', 'csum' : 'a27489'}}); this.blur(); return false;" time="0:08:08" style="display:inline-block;">
	<div class="button-container addHoverClick">
		<div class="button-background">
			<div class="buttonStart">
				<div class="buttonEnd">
					<div class="buttonMiddle"></div>
				</div>
			</div>
		</div>
		<div class="button-content">Ausbau **25‬%‬ schneller</div>
	</div>
</button>
<script type="text/javascript" id="button5c55c0b8c9d4d_script">
	jQuery(function() {
        jQuery('button#button5c55c0b8c9d4d').click(function () {
            jQuery(window).trigger('buttonClicked', [this, {"type":"button","value":"Ausbau \u0026#x202d;\u0026#x202d;25\u0026#x202c;\u0026#37;\u0026#x202c; schneller","name":"","id":"button5c55c0b8c9d4d","class":"green build videoFeatureButton","title":"","confirm":"","onclick":"jQuery(window).trigger(\u0027showVideoWindow\u0027, {\u0027data\u0027 : {\u0027cmd\u0027: \u0027adSalesVideo\u0027, \u0027uid\u0027: \u00273404\u0027, \u0027gid\u0027: \u002723\u0027, \u0027lvl\u0027 : \u00271\u0027, \u0027buildingPlotId\u0027: \u002730\u0027, \u0027csum\u0027 : \u0027a27489\u0027}}); this.blur(); return false;","time":"0:08:08","style":"display:inline-block;"}]);
        });
	});
</script>
<div class="clear"></div><div class="inlineIcon clocks"><i class="clock"></i><span class="value ">0:08:08</span></div><div class="inlineIcon "><i class="play_video"></i><span class="value ">**0‬/*9‬‬</span></div>    </div>

    <div class="clear"></div>

</div>
Zum Parsen der Url kannst du ein DOMparser nehmen, Regex oder was du magst.
Als Beispiel wie es mit Regex aussehen könnte:


Somit würdest in diesem Beispiel z.B die Url "dorf2.php?a=30&c=a27489" herrausbekommen.
Wenn du dir die Urls nach einem refresh der Seite anschaust wirst du merken das der Wert des Parameters c immer anders ist. Somit kannst du nicht einfach immer die gleiche Url aufrufen sondern wirst gezwungen die Url aus dem Quellcode zu parsen.


False is offline  
Old 02/03/2019, 04:15   #3



 
elite*gold: 2222
The Black Market: 203/1/0
Join Date: May 2010
Posts: 6,794
Received Thanks: 5,027
Arrow General Coding -> .NET Languages

#moved
Serraniel is offline  
Old 02/10/2019, 22:01   #4
 
elite*gold: 0
Join Date: Jun 2009
Posts: 12
Received Thanks: 1
Nabend

vielen vielen Dank. Mit deiner Antwort hast du mir sehr weitergeholfen. Habe mich mit http web request intensiver beschäftigt und mir reg ex Tutorials angeschaut aber finde einfach nicht die richtigen pattern.

Ich habe erst einmal versucht mir auf der Übersichtsseite die Dorf-ID der Dörfer in einer List Box versucht anzeigen zu lassen aber es klappt einfach nicht:

Quote:
<a id="" title="<span class='coordinates coordinatesWithText coordinatesLTR'><span class='coordText'>- MIRKO</span><span class='coordinatesAligned coordinatesLTR'><span class='coordinateX'>(31</span><span class='coordinatePipe'>|</span><span class='coordinateY'>-82)</span></span><span class='clear'> </span>" href="?newdid=26350" class=""><img src="x.gif"/>- MIRKO</a><span class='coordinates coordinatesWrapper coordinatesAligned coordinatesLTR'><span class='coordinateX'>(31</span><span class='coordinatePipe'>|</span><span class='coordinateY'>-82)</span></span><span class='clear'> </span></li><li class="entry " title="">
<a id="" title="<span class='coordinates coordinatesWithText coordinatesLTR'><span class='coordText'>- REVENGE</span><span class='coordinatesAligned coordinatesLTR'><span class='coordinateX'>(26</span><span class='coordinatePipe'>|</span><span class='coordinateY'>-73)</span></span><span class='clear'> </span>" href="?newdid=25354" class=""><img src="x.gif"/>- REVENGE</a><span class='coordinates coordinatesWrapper coordinatesAligned coordinatesLTR'><span class='coordinateX'>(26</span><span class='coordinatePipe'>|</span><span class='coordinateY'>-73)</span></span><span class='clear'> </span></li><li class="entry " title="">
<a id="" title="<span class='coordinates coordinatesWithText coordinatesLTR'><span class='coordText'>- SPORT CLIPS</span><span class='coordinatesAligned coordinatesLTR'><span class='coordinateX'>(26</span><span class='coordinatePipe'>|</span><span class='coordinateY'>-72)</span></span><span class='clear'> </span>" href="?newdid=25355" class=""><img src="x.gif"/>- SPORT CLIPS</a><span class='coordinates coordinatesWrapper coordinatesAligned coordinatesLTR'><span class='coordinateX'>(26</span><span class='coordinatePipe'>|</span><span class='coordinateY'>-72)</span></span><span class='clear'> </span></li><li class="entry " title="">
<a id="" title="<span class='coordinates coordinatesWithText coordinatesLTR'><span class='coordText'>- TOLGA</span><span class='coordinatesAligned coordinatesLTR'><span class='coordinateX'>(19</span><span class='coordinatePipe'>|</span><span class='coordinateY'>-81)</span></span><span class='clear'> </span>" href="?newdid=23939" class=""><img src="x.gif"/>- TOLGA</a><span class='coordinates coordinatesWrapper coordinatesAligned coordinatesLTR'><span class='coordinateX'>(19</span><span class='coordinatePipe'>|</span><span class='coordinateY'>-81)</span></span><span class='clear'> </span></li><li class="entry " title="">
<a id="" title="<span class='coordinates coordinatesWithText coordinatesLTR'><span class='coordText'>- TOM TOM</span><span class='coordinatesAligned coordinatesLTR'><span class='coordinateX'>(30</span><span class='coordinatePipe'>|</span><span class='coordinateY'>-78)</span></span><span class='clear'> </span>" href="?newdid=26153" class=""><img src="x.gif"/>- TOM TOM</a><span class='coordinates coordinatesWrapper coordinatesAligned coordinatesLTR'><span class='coordinateX'>(30</span><span class='coordinatePipe'>|</span><span class='coordinateY'>-78)</span></span><span class='clear'> </span></li><li class="entry " title="">
<a id="" title="<span class='coordinates coordinatesWithText coordinatesLTR'><span class='coordText'>- YESMIN</span><span class='coordinatesAligned coordinatesLTR'><span class='coordinateX'>(33</span><span class='coordinatePipe'>|</span><span class='coordinateY'>-87)</span></span><span class='clear'> </span>" href="?newdid=26747" class=""><img src="x.gif"/>- YESMIN</a><span class='coordinates coordinatesWrapper coordinatesAligned coordinatesLTR'><span class='coordinateX'>(33</span><span class='coordinatePipe'>|</span><span class='coordinateY'>-87)</span></span><span class='clear'> </span></li><li class="entry " title="">
<a id="" title="<span class='coordinates coordinatesWithText coordinatesLTR'><span class='coordText'>AMEVIDA</span><span class='coordinatesAligned coordinatesLTR'><span class='coordinateX'>(32</span><span class='coordinatePipe'>|</span><span class='coordinateY'>-83)</span></span><span class='clear'> </span>" href="?newdid=26550" class=""><img src="x.gif"/>AMEVIDA</a><span class='coordinates coordinatesWrapper coordinatesAligned coordinatesLTR'><span class='coordinateX'>(32</span><span class='coordinatePipe'>|</span><span class='coordinateY'>-83)</span></span><span class='clear'> </span></li><li class="entry " title="">
ich möchte gerne:
Quote:
</span>" href="?newdid=26350" class=""><img src="x.gif"/>
Die Dorf ID in dem Fall die 26350 in einer Listbox anzeigen lassen und nutze dafür folgenden Code:

Quote:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim r As New System.Text.RegularExpressions.Regex(" href=""?newdid="".*"" class=""><img src=""x.gif""/>")
Dim matches As MatchCollection = r.Matches(RichTextBox1.Text)

For Each itemcode As Match In matches

ListBox1.Items.Add(itemcode.Value.Split("""").GetV alue(1))

Next
End Sub

Bei mir wird jedoch garnichts angezeigt.. Das verstehe ich nicht. Danach würde ich gerne die Dorf Namen auslesen auch das klappt nicht.

Vielen Dank für eure Hilfe


Najix3 is offline  
Old 02/10/2019, 23:16   #5
 
elite*gold: 238
Join Date: Sep 2009
Posts: 2,324
Received Thanks: 1,156
Wärst du so gut und packst einmal den gesamten HTML Quellcode in einen PasteBin?
Ich denke was auch gehen dürfte sind die DOM Elemente zu parsen.
Das habe ich mal mit GeckoFX gemacht, das hat ganz wunderbar funktioniert.

Ich denke aber auch das dein Spiel Sockets verwendet und du üben jene auch in der Lage wärst Befehle zu senden.

Ich sehe gerade False hat das schon so beantwortet.
Also wie gesagt DOM Parsen halte ich für am schlausten.
Dein schlimmster Feind ist dann natürlich ein uglyfier, aber ich denke die benutzen keinen.
mrapc is offline  
Old 02/10/2019, 23:58   #6
Moderator



 
elite*gold: 409
The Black Market: 233/0/0
Join Date: Apr 2011
Posts: 9,114
Received Thanks: 2,150
Quote:
href=""?newdid="".*"" class=""><img src=""x.gif""/>
Wenn ich es richtig sehe ist das dein Regex.

Dort sind einige Sachen die du beachten solltest, z.B. hast du das Fragezeichen und den Punkt (in x.gif) nicht escaped.

Ein ? Heißt in Regex das das vorherige Zeichen optional ist was bei dir ja nicht der fall ist (Somit hättest du das Fragezeichen escapen müssen \?)
Ein Punkt heißt soviel wie "jedes belibige Zeichen", das hättest du also auch escapen (\.) müssen damit er wirklich nach einem Punkt geschaut wird.
Desweiteren hast du mehrfach "" im Regex, was dort nichts zu suchen hat (da im Quellcode keine "" zu sehen sind).

Auf Regex101 kannst du dein Regex gut testen, die "rausgefilterten" Werte werden im Quellcode farbig markiert und rechts auch noch einmal angezeigt.

Für dein Fall wäre z.B. folgender Regex möglich (zu beachten sind natürlich die verwendeten Flags)


Lies dich am besten mehr in Regex ein oder nutz dein Dom parser (musst du dich ggf. aber auch einlesen).
False is offline  
Thanks
1 User
Old 02/16/2019, 18:45   #7


 
elite*gold: 145
Join Date: Oct 2014
Posts: 1,139
Received Thanks: 204
Kann dir bei Travian HTML DOM empfehlen (:

Der Liebe False hat mir schon einiges zu dem Thema beigebracht, und kann nun eigentlich mehr oder weniger ( auch wenns teilweise nicht so schön gecodet ist ) alles automatisieren was ich will o.o

Ist nach 1-2 Beispielen auch relativ schnell zu verstehen
Mad0ck is offline  
Thanks
1 User
Old Yesterday, 15:16   #8
 
elite*gold: 0
Join Date: Jun 2009
Posts: 12
Received Thanks: 1
@: Vielen Dank, hast du Erfahrung im Travian Bereich? Hast du evtl Beispiele zu HTML DOM? Wie hast du damit angefangen? Was empfhielst du mir?
Najix3 is offline  
Old Yesterday, 15:45   #9
 
elite*gold: 0
Join Date: Jun 2009
Posts: 12
Received Thanks: 1
HttpWebRequest Travian Einheiten ausbilden

Hallo Zusammen,

ich möchte gerne per HttpWebRequest bei Travian Einheiten ausbilden.

So sieht der Mitschnitt aus:
Code:
http://tx40xxxxxxxxxxis.com/build.php

Host: tx40xxxxxxxxxxis.com

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Accept-Language: de,en-US;q=0.7,en;q=0.3

Accept-Encoding: gzip, deflate

Referer: http://tx40xxxxxxxxxxis.com/build.php?id=19

Content-Type: application/x-www-form-urlencoded

Content-Length: 29

Connection: keep-alive

Cookie: _ga=GA1.2.635458686.1547908770; tt_lang=en; tt_mlang=en; t4level=1; highlightsToggle=false; c_name=0|Win32|Windows%20NT%2010.0|1920px*1080px|amd64|-%2C-%2C-; chatmaninwindowtab=0; mapId1=%7B%22grid%22%3Atrue%7D; PHPSESSID=madekpgikfgovupi2brhmk6sr3; WMBlueprints=%5B%5D

Upgrade-Insecure-Requests: 1

id=19&ft=t1&t21=1&t22=0&s1=ok

POST: HTTP/1.1 302 Moved Temporarily

Date: Sun, 17 Feb 2019 13:55:33 GMT

Server: Apache/2.2.15

X-Powered-By: PHP/5.3.3

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Pragma: no-cache

Set-Cookie: tt_lang=en; expires=Sun, 24-Feb-2019 13:55:33 GMT
tt_mlang=en; expires=Sun, 24-Feb-2019 13:55:33 GMT

Location: build.php?id=19

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0, public

Vary: Accept-Encoding

Content-Encoding: gzip

Content-Length: 20

Keep-Alive: timeout=5, max=195

Connection: Keep-Alive

Content-Type: text/html; charset=UTF-8

Und so sieht mein Code aus:

Code:
farmh.GetResponse("http://tx40xxxxxxxxxxis.com/build.php", "?id=19&ft=t1&t21=1&t22=0&s1=ok")
Ich nutze die Function von Kraizy aus dem TuT

Leider passiert hier garnichts, normalerweise sollte 1 Einheit ausgebildet werden.

Ich hoffe auf eure Unterstützung, vielen Dank im Voraus.
Najix3 is offline  
Old Yesterday, 15:54   #10
 
elite*gold: 0
Join Date: Aug 2010
Posts: 860
Received Thanks: 99
Evtl .muss du noch die Location mitsenden im deinem post.

PHP Code:
Locationbuild.php?id=19 
Ludder231 is offline  
Old Yesterday, 18:14   #11


 
elite*gold: 145
Join Date: Oct 2014
Posts: 1,139
Received Thanks: 204
Quote:
Originally Posted by Najix3 View Post
@: Vielen Dank, hast du Erfahrung im Travian Bereich? Hast du evtl Beispiele zu HTML DOM? Wie hast du damit angefangen? Was empfhielst du mir?
Kannst mich ja mal bei Discord adden (:
S208-Michi#2840

lg


Mad0ck is offline  
Reply



« ctrl+c auf curserpos geht manchmal nicht | ListBox Items splitten & HttpWebRequest Post »

Similar Threads
c# httpwebrequest Travian
12/07/2017 - .NET Languages - 2 Replies
Gude Leute ich hätt da mal ein anliegen ich will mir ein kleines Tool zur vereinfachten bedinung von Travian schreiben nur leider bekomme ich das irgendwie nicht auf die Reihe. da mein Code nicht so recht funktioniert hat habe ich mir den code von jemand anderes mal geklaut aber der ergibt das gleiche problem. Das Probleme ist er zeigt die Seite nicht richtig an und er baut keine truppen wenn ich auf Button1 click. wenn mir einer das vielleicht mal flicken könnte oder mir erklären...
[Travian]offizieller Infothread zu Travion![Travian]
09/26/2012 - Browsergames - 11 Replies
NEUER SERVER: http://funnyserver.tk/travion
[Travian] Atlantis Travian New
02/11/2011 - General Gaming Discussion - 0 Replies
Join new Travian browser game. Atlantis Travian : Travian Online : Free To Play Browser Game Enjoy ! :)



All times are GMT +1. The time now is 05:28.


Powered by vBulletin®
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2019 elitepvpers All Rights Reserved.