#WhereTheFuckIam - IP-Locator

  • Ein kleines Skript dass euch ein Sattellitenbild eures derzeitigen Aufenthaltsortres erstellt :)

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>
    #include <WindowsConstants.au3>
    #Include <ScreenCapture.au3>
    #include <GUIConstantsEx.au3>
    Global $Bin = InetRead ("http://www.find-ip-address.org/ip-location-lookup-module.php")
    Global $Page = BinaryToString ($Bin)
    $City = Grep($Page, "Your City")
    $Region = Grep($Page, "Your Region")
    $Country = Grep($Page, "Your Country Name")
    $hGUI = GUICreate("Where the Fuck I am?", 350, 460, 0, 0, $WS_POPUP, $WS_EX_TOOLWINDOW)
    _IEErrorHandlerRegister ()
    $oIE = _IECreateEmbedded ()
    GUICtrlCreateObj($oIE, -500, -120, 1000, 600)
    GUISetState()
    _IENavigate ($oIE, "http://maps.google.de/maps?q="&$City&",+"&$Region&",+"&$Country&"&hl=de&ie=UTF8&vpsrc=6&t=h&z=18")
    GUICtrlCreateLabel("Made by Google and #WhereTheFuckIam", 0, 449, 350, 13)
    _ScreenCapture_Capturewnd(@tempdir&"\loc.bmp", $hGUI)
    GUIDelete($hGUI)
    ShellExecute(@tempdir&"\loc.bmp")
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Func Grep($sString, $sSearch) ; by UEZ
    Local $aGrep = StringRegExp($Page, "(?i)(?U)" & $sSearch & ": <b>(.*)</b>", 3)
    If @error Then Return SetError(@error, 0, 0)
    Return $aGrep[0]
    EndFunc

    [/autoit]

    MfG, campweb

    Einmal editiert, zuletzt von campweb (17. August 2011 um 01:58)

  • das script zeigt bei mir auch einen falschen ort an.und laut script lebe ich mitten auf der straße

  • Hallo campweb,

    unter Win XP SP3 bekomme ich kein korrektes Ergebnis:
    autoit.de/wcf/attachment/13983/
    ich habe daraufhin folgende Zeile eingefügt:

    [autoit]

    ConsoleWrite($City & " " & $Region & " " & $Country & @CRLF)

    [/autoit]

    und nochmals getestet. In der Consoleausgabe erscheint nur Germany, also Stadt und Region ist unbekannt.
    Auf dem Bildauschnitt kann ich auch nichts in meiner Nähe erkennen. Des weiteren solltest du noch

    [autoit]

    WinActivate($hGUI)

    [/autoit]

    direkt vor dem Screenshot einfügen, denn wenn sich ein anderes Fenster im Vordergrund befindet wird seltsamerweise der Inhalt dieses gecaptured,

    mfg autoBert

  • @Sprenger: für Domainnamen funktioniert deine UDF bei mir wenn ich allerdings meine vom ISP dynamisch zugeteilte eintrage bzw. mit _GetIP einsetze bekomme ich auch dort ein leeres Array zurück,

    mfg autoBert

  • :D ich bin laut der Seite in Berlin. Also am genau entgegensetzten Ende vom Deutschland als ich wirklich bin XD

    Bei der UDF von Sprenger ist der Ort zwar schon näher aber immernoch etwa 300km entfernt.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    • Offizieller Beitrag

    Ich kenne diesen Lokation-Dienst nicht, aber auch von anderen Diensten ist bekannt, dass eine regionale Auflösung am Hostnamen endet. Hat der Hoster das Netz untervermietet (wie z.B. Telekom an 1&1), so bleibt man am Übergabepunkt 'hängen' und wird auch mit dem "Vermieter" als ISP geführt :D.
    Insofern sind alle solche Lokationtools von vornherein zum Scheitern verurteilt - und das ist auch gut so. :thumbup:

  • Hab mal fix 1.5 Funktionen geschrieben ;)

    Spoiler anzeigen
    [autoit]

    #include<inet.au3>
    #include<string.au3>
    #include<array.au3>
    #include<googlemaps.au3>
    ;===============================================================================
    ; Function Name.....: _locateip($i)
    ; Parameter(s)......: $i;
    ;....................1- ip-address
    ;....................2- provider
    ;....................3- location
    ;....................4- latidude
    ;....................5- longitude
    ;================================================================================
    Func _locateip($i)

    [/autoit] [autoit][/autoit] [autoit]

    $source = _INetGetSource("http://www.utrace.de/?query=" & _GetIP())
    If $i = 1 Then
    $string = _StringBetween($source, 'href=\"http:\/\/www.utrace.de\/whois\/' & _GetIP() & '\">', '<\/a><\/span><\/td><\/tr>')
    return $string[0]
    elseif $i=2 then
    $string = _StringBetween($source, 'href=\"http:\/\/www.utrace.de\/whois\/' & _GetIP() & '\">', '<\/a><\/span><\/td><\/tr>')
    return $string[1]
    ElseIf $i = 3 Then
    $string = _StringBetween($source, '<b>Region:<\/b><\/span><\/td><td><span class=\"standard\">&nbsp;<\/span><\/td><td align=\"left\" valign=\"top\"><span class=\"standard\">', '<\/span><\/td><\/tr><\/table>"')
    return $string[0]
    ElseIf $i = 4 Then
    $string = _StringBetween($source, 'new GLatLng(', ',')
    return $string[0]
    ElseIf $i = 5 Then
    $string = _StringBetween($source, 'new GLatLng(', ',')
    $string = _StringBetween($source, $string[0] & ",", ');')
    return $string[0]
    Elseif @error Then
    Return 0
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_locateip

    [/autoit] [autoit][/autoit] [autoit]

    func _GUICtrlGoogleMap_SetViewoniplocation($gmap)
    Local $latlng[2]
    $source = _INetGetSource("http://www.utrace.de/?query=" & _GetIP())
    $address = _StringBetween($source, 'new GLatLng(', ');')
    $latlng = _GUICtrlGoogleMap_GetLatLng($address[0])
    $gmap.document.parentWindow.execScript("move_map(" & $latlng[0] & "," & $latlng[1] & ");")
    Return True
    EndFunc

    [/autoit]

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

  • BugFix hat völlig Recht je nach Standort ist es mit keinem Script möglich an die genaue Stelle zu kommen. Wenn man im CMD z.b tracert autoit.de eingibt sieht man über wieviele Zwischenpunkte die Verbindung bis zum Endserver geht. Also gut möglich dass der Standort von einem dazwischen rauskommt ;) mfg payno