|
You last visited: Today at 21:18
Advertisement
Ip Adresse
Discussion on Ip Adresse within the AutoIt forum part of the Coders Den category.
08/13/2013, 15:40
|
#1
|
elite*gold: 0
Join Date: Aug 2011
Posts: 1,094
Received Thanks: 209
|
Ip Adresse
+
|
|
|
08/13/2013, 16:28
|
#2
|
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.
|
|
|
08/13/2013, 16:43
|
#3
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
Quote:
Originally Posted by alpines
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
|
|
|
08/13/2013, 16:44
|
#4
|
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.
|
|
|
08/13/2013, 16:59
|
#5
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
Quote:
Originally Posted by alpines
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
|
|
|
08/13/2013, 17:07
|
#6
|
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.
|
|
|
08/13/2013, 18:15
|
#7
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
Quote:
Originally Posted by alpines
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
|
|
|
08/13/2013, 20:18
|
#8
|
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.
|
|
|
08/13/2013, 20:23
|
#9
|
elite*gold: 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
|
|
|
08/13/2013, 20:24
|
#10
|
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!
|
|
|
08/13/2013, 20:33
|
#11
|
elite*gold: 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?
|
|
|
08/13/2013, 21:21
|
#12
|
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)
|
|
|
08/13/2013, 22:23
|
#13
|
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
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
kannst du die Funktion aufrufen, welche dir deine aktuelle öffentliche IP-Adresse zurück gibt.
MfG
|
|
|
08/13/2013, 22:52
|
#14
|
elite*gold: 0
Join Date: Aug 2011
Posts: 1,094
Received Thanks: 209
|
ok dankesehr
|
|
|
08/14/2013, 12:40
|
#15
|
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.
|
|
|
 |
|
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.
|
|