ip herausfinden

  • ein kleines script zum herausfinden der ip mit autoit + php
    kann man das so stehen lassen?

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Form1", 305, 41, 193, 136)
    $Label1 = GUICtrlCreateLabel("IP-Adresse:", 8, 8, 58, 17)
    $Label2 = GUICtrlCreateLabel("Hier kommt sie rein", 72, 8, 141, 17)
    $Button1 = GUICtrlCreateButton("Auslesen", 216, 8, 75, 25, 0)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    ;testadresse: http://testadresse/ip.php
    InetGet("http://deineseite.de/ip.php","ip.txt",1)
    $ipdata=FileOpen("ip.txt",0)
    $ip=FileReadLine($ipdata,1)
    GUICtrlSetData($Label2,$ip)
    EndSwitch
    WEnd

    [/autoit]
    PHP
    <?php
    $ip=getenv("REMOTE_ADDR");
    Echo $ip;
    ?>

    Einmal editiert, zuletzt von windforce (31. März 2009 um 19:33)

  • war nur n kleiner versuch außerdem finde ich das _getip
    ne ziemlich wuchtige funktion für so wenig ist

    Spoiler anzeigen
    [autoit]

    Func _GetIP()
    Local $ip, $t_ip
    If InetGet("http://checkip.dyndns.org/?rnd1=" & Random(1, 65536) & "&rnd2=" & Random(1, 65536), @TempDir & "\~ip.tmp") Then
    $ip = FileRead(@TempDir & "\~ip.tmp", FileGetSize(@TempDir & "\~ip.tmp"))
    FileDelete(@TempDir & "\~ip.tmp")
    $ip = StringTrimLeft($ip, StringInStr($ip, ":") + 1)
    $ip = StringTrimRight($ip, StringLen($ip) - StringInStr($ip, "/") + 2)
    $t_ip = StringSplit($ip, '.')
    If $t_ip[0] = 4 And StringIsDigit($t_ip[1]) And StringIsDigit($t_ip[2]) And StringIsDigit($t_ip[3]) And StringIsDigit($t_ip[4]) Then
    Return $ip
    EndIf
    EndIf
    If InetGet("http://www.whatismyip.com/?rnd1=" & Random(1, 65536) & "&rnd2=" & Random(1, 65536), @TempDir & "\~ip.tmp") Then
    $ip = FileRead(@TempDir & "\~ip.tmp", FileGetSize(@TempDir & "\~ip.tmp"))
    FileDelete(@TempDir & "\~ip.tmp")
    $ip = StringTrimLeft($ip, StringInStr($ip, "Your ip is") + 10)
    $ip = StringLeft($ip, StringInStr($ip, " ") - 1)
    $ip = StringStripWS($ip, 8)
    $t_ip = StringSplit($ip, '.')
    If $t_ip[0] = 4 And StringIsDigit($t_ip[1]) And StringIsDigit($t_ip[2]) And StringIsDigit($t_ip[3]) And StringIsDigit($t_ip[4]) Then
    Return $ip
    EndIf
    EndIf
    SetError(1)
    Return -1
    EndFunc ;==>_GetIP

    [/autoit]


    und so ist man auch noch ein bissi unabhängiger von den großen anbietern die so geld verdienen ;)

  • ;D Dachte mir schon, wäre ja fein gewesen über cmd...
    Naja, das mit den IP's ist da schon so ne Sache bei Autoit. Ich weiss nicht wie es bei anderen Sprachen is, aber da sollte sich was ändern. Die WAN-IP und die LAN-IP sollte man doch ohne Probleme bekommen können, finde ich.

  • WAN muss eben immer über so eine Seite abgefragt werde :)
    Außerdem sollte immer eine Fehlerbehandlung dabei sein

    Spoiler anzeigen
    [autoit]

    #include <INet.au3>

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

    Func _GetIP2()
    Local $IP = _INetGetSource("http://myip.tsql.de")
    Local $IP = StringRegExp($IP,"<b>IP-Adresse :</b> ([0-9.]+)<",3)
    If Not @error Then $IP = $IP[0]
    If Not StringRegExp($IP,"\A\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\Z") Then
    $IP = _INetGetSource("http://w1ndf0rc3.w1.funpic.de/ip.php")
    If Not StringRegExp($IP,"\A\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\Z") Then Return SetError(1,0,"")
    EndIf
    Return $IP
    EndFunc

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

    MsgBox(0, '', _GetIP2())

    [/autoit]

    Einmal editiert, zuletzt von progandy (27. September 2008 um 14:44)

  • Achso lol :whistling:

    Mh dann gibt es da doch dyndns. Dann funktioniert meine Variante wieder. :D

    Wenn du es nur über php machen möchtest, gibt es da diese Möglichkeit.

    PHP
    <?php
    @$address =  ($_SERVER['REMOTE_ADDR']);
    echo $address;
    ?>

    MfG
    Der_Doc