Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 21:18

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

Advertisement



Ip Adresse

Discussion on Ip Adresse within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1

 
M7TRA's Avatar
 
elite*gold: 0
The Black Market: 240/1/0
Join Date: Aug 2011
Posts: 1,094
Received Thanks: 209
Ip Adresse

+
M7TRA is offline  
Old 08/13/2013, 16:28   #2
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Du könntest auf einer Website, wie z.B. die einfach aufgebaut ist.
Dann per INetGet / TCPSend/Recv-Packets anfordern, Stringfunktionen anwenden und fertig.
alpines is offline  
Thanks
1 User
Old 08/13/2013, 16:43   #3
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Quote:
Originally Posted by alpines View Post
Du könntest auf einer Website, wie z.B. die einfach aufgebaut ist.
Dann per INetGet / TCPSend/Recv-Packets anfordern, Stringfunktionen anwenden und fertig.
InetGet ist gefährlich, da dort der IE Cache verwendet werden kann und die Ergebnisse somit nicht unbedingt richtig sind.

Code:
#include <WinHttp.au3>

MsgBox(0, 0, 'Your IP is: ' & _GetPublicIP())

Func _GetPublicIP()
	$aIP = StringRegExp(_InetReadWinHttp('GET', 'api.hostip.info', '/get_html.php?ip='), 'IP\: (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})', 3)
	If IsArray($aIP) Then Return $aIP[0]
EndFunc   ;==>_GetPublicIP

Func _InetReadWinHttp($sType, $sServerName, $sPath = Default, $sReferrer = Default, $sData = Default, $sHeader = Default, $fGetHeaders = Default, $iMode = Default)
	Local $sUserAgent = 'Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20100101 Firefox/17.0'
	Local $hSession = _WinHttpOpen($sUserAgent)
	Local $hConnect = _WinHttpConnect($hSession, $sServerName)
	Local $vReturn = _WinHttpSimpleRequest($hConnect, $sType, $sPath, $sReferrer, $sData, $sHeader, $fGetHeaders, $iMode)
	_WinHttpCloseHandle($hConnect)
	_WinHttpCloseHandle($hSession)
	Return $vReturn
EndFunc   ;==>_InetReadWinHttp
Man sollte aber davon absehen, IP-Anfragen zu spammen, d.h. ein Zwischenspeichern der IP wäre sinnvoll, wenn die Funktion mehr als ein mal alle paar Minuten aufgerufen wird.

€:

Falls du einen Server hast / webspace,
PHP Code:
<?php
header
('Content-Type: text/plain');
echo 
$_SERVER['REMOTE_ADDR'];
?>
MfG
Achat is offline  
Thanks
1 User
Old 08/13/2013, 16:44   #4
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Ich hab auch geschrieben das das mit TCPSend/TCPRecv-Packets geht, da brauchst du keine WinHttp UDF, da die sowieso viel zu langsam ist.
alpines is offline  
Thanks
1 User
Old 08/13/2013, 16:59   #5
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Quote:
Originally Posted by alpines View Post
Ich hab auch geschrieben das das mit TCPSend/TCPRecv-Packets geht, da brauchst du keine WinHttp UDF, da die sowieso viel zu langsam ist.


Dass muss empirisch untersucht werden.

Code:
dim $hTimerWinHttp,$hTimerTCP

$hTimerWinHttp=TimerInit()
for $i = 1 to 30
_InetReadWinHttp('GET','google.com','/')
Next
ConsoleWrite('WINHTTP: '&TimerDiff($hTimerWinHttp)&@CRLF)

$hTimerTCP=TimerInit()
for $i = 1 to 30
_TCPHTTPRequest('GET','www.google.com','/?gws_rd=cr')
Next
ConsoleWrite('TCP: '&TimerDiff($hTimerTCP)&@CRLF)
Ergebnis:
Code:
WINHTTP: 11130.4397156683
TCP: 3220.66502365244
WinHttp = AutoIt -> DllCall -> TCP
TCP = AutoIt -> TCP

WinHttp verwaltet z.b. automatisch Cookies etc, hat eben viel mehr Funktionen, dafür aber auch langsamer. Bei 302/301 Headern (found,moved etc) leitet TCP nicht automatisch weiter.

MfG
Achat is offline  
Thanks
2 Users
Old 08/13/2013, 17:07   #6
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Da mach ich doch gleich mit:

Für WinHttp brauchst du die WinHttp UDF und musst deren Funktionen nutzen statt es mit ein paar Zeilen selber zu machen welches schneller und ohne UDF geht.

Desweiteren möchte ich mal deine "_TCPHTTPRequest"-Funktion sehen.

Da man aber lediglich nur eine Website laden möchte (und wenn diese Seite nicht da ist, dann bringt dir WinHttp auch nicht weiter) dann ist TCP ohne WinHttp die bessere Variante, weil sich IP-Seiten nie ändern und sollte ein Aufruf doch fehlschlagen (welcher dann bei WinHttp auch passieren würde) dann nimmt man zur Sicherheit eine 2. Seite.

Zu dem Cookies: Du willst dir nur eine Website aufrufen und nicht gleich dich irgendwo anmelden.
alpines is offline  
Thanks
1 User
Old 08/13/2013, 18:15   #7
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Quote:
Originally Posted by alpines View Post
Desweiteren möchte ich mal deine "_TCPHTTPRequest"-Funktion sehen.
PM

Code:
dim $hTimer=TimerInit()
dim $sIP=_REMOTE_ADDR()
MsgBox(0, 'REMOTE_ADDR', $sIP&@CRLF&@CRLF&Floor(TimerDiff($hTimer)))

Func _REMOTE_ADDR()
	Local $iSocket, $sRead
	TCPStartup()
	$iSocket = TCPConnect(TCPNameToIP('ping.eu'), 80)
	If $iSocket < 1 Then Return
	TCPSend($iSocket, 'GET / HTTP/1.1' & @CRLF & _
			'Host: ping.eu' & @CRLF & _
			'User-Agent: AutoIt' & @CRLF & _
			'Accept-Encoding: none' & @CRLF & _
			'Accept: */*' & @CRLF & _
			'Connection: close' & @CRLF & @CRLF)
	While $sRead = ''
		$sRead = TCPRecv($iSocket, 1)
	WEnd
	While 1
		$sRead &= TCPRecv($iSocket, 1024)
		If @error Then ExitLoop
	WEnd
	TCPCloseSocket($iSocket)
	TCPShutdown()
	Return StringRegExpReplace($sRead, '(?i)(?s).*Your IP is <b>(.+?)</b>.*', '\1')
EndFunc   ;==>_REMOTE_ADDR
Hier funktioniert dein minimal-packet
Code:
	TCPSend($iSocket, 'GET / HTTP/1.1' & @CRLF & _
			'Host: ping.eu')
nicht.

MfG
Achat is offline  
Thanks
1 User
Old 08/13/2013, 20:18   #8
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
So, jetzt versteh ich keinen Spaß mehr

1. Dein Paket ist falsch!

So lautet es richtig:
Code:
$sPacket = "GET / HTTP/1.1" & @CRLF & _
	"Host: www.ping.eu" & @CRLF & _
	@CRLF
2. Ich sprach von der anderen Seite, wtfismyip.com da wäre das Paket:
Code:
$sPacket = "GET / HTTP/1.1" & @CRLF & _
	"Host: wtfismyip.com" & @CRLF & _
	@CRLF
Merke dir, am Ende eines HTTP-Packets haben immer 2 Carriage Return Line Feeds zu stehen, weil sie der Server sonst nicht parsen kann, aber das hast du ja hier nur vergessen.
alpines is offline  
Thanks
2 Users
Old 08/13/2013, 20:23   #9

 
M7TRA's Avatar
 
elite*gold: 0
The Black Market: 240/1/0
Join Date: Aug 2011
Posts: 1,094
Received Thanks: 209
oh was und wie kriege ich jetz meine GlobalIp ?:x ist mir ehrlich gesagt zu viel Fachgesimpel
M7TRA is offline  
Old 08/13/2013, 20:24   #10
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Du benutzt entweder meine oder seine Variante, je nach dem was dir mehr gefällt und dann wendest du am Source-Code Stringfunktionen an um deine IP aus dem Source-Code zu filtern.

Fertig!
alpines is offline  
Thanks
1 User
Old 08/13/2013, 20:33   #11

 
M7TRA's Avatar
 
elite*gold: 0
The Black Market: 240/1/0
Join Date: Aug 2011
Posts: 1,094
Received Thanks: 209
das sagst du so leicht.ich bin totaler Anfänger und kann mit String undsoweiter nichts anfangen D
Gibt es keine einfache Funktion sie herauszufinden ohne ander webseiten und http/Tcp krams?
M7TRA is offline  
Old 08/13/2013, 21:21   #12
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Nach kurzer Arbeit: Du nutzt hier den Service WieIstMeineIp.de

Code:
#include <String.au3>

TCPStartUp()

$hServer = TCPConnect("212.19.62.76", 80)

If $hServer = -1 Then
	MsgBox(16, "Error", "Could not retreive global IP.")
	Exit
EndIf

TCPSend($hServer, "GET / HTTP/1.1" & @CRLF & "Host: www.wieistmeineip.de" & @CRLF & @CRLF)

Do
	$sHTML = TCPRecv($hServer, 4096)
Until StringInStr($sHTML, '<h1 class="ip">')

TCPCloseSocket($hServer)
TCPShutdown()

$aGlobalIp = _StringBetween($sHTML, '<h1 class="ip">', "</h1>")
Global Const $sGlobalIp = $aGlobalIp[0]

MsgBox(64, "Global Ip", $sGlobalIp)
alpines is offline  
Thanks
1 User
Old 08/13/2013, 22:23   #13
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
Wieviele Scripte sollen es denn noch werden?

Quote:
Originally Posted by alpines View Post
Code:
$aGlobalIp = _StringBetween($sHTML, '<h1 class="ip">', "</h1>")
Code:
$aGlobalIp =StringRegExp($sHTML, '<h1 class="ip">(.+)</h1>',3)
_StringBetween benutzt StringRegExp. Also kann man das gleich benutzen

@mt2guides

einfach mal mein Beispiel ausführen

Code:
MsgBox(0, '', 'Deine IP ist ' & _REMOTE_ADDR())

Func _REMOTE_ADDR()
	Local $iSocket, $sRead
	TCPStartup()
	$iSocket = TCPConnect(TCPNameToIP('ping.eu'), 80)
	If $iSocket < 1 Then Return
	If Not TCPSend($iSocket, 'GET / HTTP/1.1' & @CRLF & _
			'Host: ping.eu' & @CRLF & _
			'User-Agent: AutoIt' & @CRLF & _
			'Accept-Encoding: none' & @CRLF & _
			'Accept: */*' & @CRLF & _
			'Connection: close' & @CRLF & @CRLF) Then Return 0
	While $sRead = ''
		$sRead = TCPRecv($iSocket, 1)
	WEnd
	While 1
		$sRead &= TCPRecv($iSocket, 1024)
		If @error Then ExitLoop
	WEnd
	TCPCloseSocket($iSocket)
	TCPShutdown()
	Return StringRegExpReplace($sRead, '(?i)(?s).*Your IP is <b>(.+?)</b>.*', '\1')
EndFunc   ;==>_REMOTE_ADDR
Mit
Code:
_REMOTE_ADDR()
kannst du die Funktion aufrufen, welche dir deine aktuelle öffentliche IP-Adresse zurück gibt.

MfG
Achat is offline  
Thanks
1 User
Old 08/13/2013, 22:52   #14

 
M7TRA's Avatar
 
elite*gold: 0
The Black Market: 240/1/0
Join Date: Aug 2011
Posts: 1,094
Received Thanks: 209
ok dankesehr
M7TRA is offline  
Old 08/14/2013, 12:40   #15
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Nicht jeder kennt sich mit einem StringRegExp Pattern aus, da ist die Variante mit _StringBetween handlicher.
alpines is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
New adresse For CE
03/16/2012 - 12Sky2 Hacks, Bots, Cheats & Exploits - 27 Replies
By Zakira ! 0056FCD4 = Attack speed "value = float chnge to 0.4 , 0.8 , ... :) 011BAF30 = Move Speed 011BAFEC = Map hack ( Infinite Soso etc.. ) 011BAD7C = Auto pill (value "1")
IP- Adresse xP
10/05/2010 - S4 League - 18 Replies
Hallo elitepvpers, ich möchte mal fragen welche IP- Adresse S4 annimmt? Die von PC? oder die Internet-IP, die man auf whatismyip sieht. Ich habe das schon früher fragen wollen, aber dachte es wäre die Internet- IP heute wollte ich es mal klarstellen :D Ich hoffe auf eure Antworten^^ mfg Terrine
ID-Adresse???
05/15/2010 - 4Story - 7 Replies
Hi an alle ich frage schon ziemlich lange rum und frage wie man in 4s sein id-adresse herausfinden umso geuppte sachen wie ranihisblabla verkaufen kann
IP-Adresse
07/03/2008 - WoW Private Server - 10 Replies
Hi leute ich möchte meinen server online stellen. Aber nicht mit Hamachi. Es wurde mir mal gesagt einfach deine server ip bei mangos hinenschreiben, aber wie sehe ich meine server ip adresse? möchte es kostenlos machen! danke im voraus
IP-Adresse
05/24/2008 - Metin2 - 21 Replies
hi community hab mal ne frage zur ip-adresse um mich vor einem bann zu schützen muss ich sie irgendwie "ändern" wie macht ihr das? lg



All times are GMT +1. The time now is 21:19.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

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