Ping befehl funktioniert nicht

  • Hi, Leute.
    Wie man sehen kann bin ich neu hier, und wie ihr euch denken könnt bin ich des AutoIt-Coden nicht wirklich mächtig^^

    Also folgendes habe ich vor:
    Ich spiele zur Zeit ein onlinegame (Rappelz). Ich möchte keinen Bot oder sowas, sondern möchte ich einen kleinen Tray oder sowas, der mir wenn ich auf den draufklicke sagt ob die Server Online sind.
    Ich habe es erstmal mit der Hilfe versucht, aber ich komme da nicht wirklich klar.
    Eine der IPs ist "38.112.59.153:80"

    mit dem folgenden Script klappt es nicht, der gibt mir immer "Error: 1" raus, obwohl der Server 100% online ist. Muss ich den Port auch angeben oder wieso funktioniert das nicht?

    [autoit]

    $var = Ping("38.112.59.153",250)
    If $var Then; also possible: If @error = 0 Then ...
    Msgbox(0,"Status","Online)
    Else
    Msgbox(0,"Status","Error: " & @error)
    EndIf

    [/autoit]

    Danke im Vorraus^^

    2 Mal editiert, zuletzt von Goaku (7. November 2008 um 07:21)

  • Hallo!

    hier meine Lösung, hab da nicht allzuviel nachgedacht (außer bei der Namensfindung) --))))

    Grüße

    Holzwurm
    PS: das Programm ist für nen Kunden von mir (Krankenhaus) und hält dort künstlich ne Routerverbindung offen


    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; rohrfrei.au3
    ; Verbindung zeitgesteuert aufhalten
    ;
    ; ; #######RELEASEHISTORIE
    ; 20080314 1.00 GD
    ; ######################

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

    #include <date.au3>
    #include <string.au3>
    #include <file.au3>

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

    $rohrfreiini = @SCRIPTDIR & "\rohrfrei.ini"
    $Version="1.00 14.03.2008 GD"

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

    ; so sieht die rohrfrei.ini aus
    ;[GLOBAL]
    ;Zielip=151.189.21.100
    ;Pingtime=3600

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

    If FileExists($rohrfreiini) then
    $ZielIP=IniRead($rohrfreiini,"Global","ZielIP","NotFound")
    $Pingtime=IniRead($rohrfreiini,"Global","Pingtime","NotFound")
    Else
    MsgBox(16,"Rohrfrei " & $Version,"keine INI-Datei rohrfrei.ini im Verzeichnis " & @Scriptdir ,10)
    exit
    EndIf

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

    if $ZielIP = "NotFound" then
    MsgBox(16,"Rohrfrei " & $Version, "INI-Datei ohne ZielIP",10)
    exit
    EndIf

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

    $i = 0
    While $i <= $Pingtime
    $doit=ping($ZielIP,850)
    if $doit > 0 then
    $message="PING OK"
    else
    $message="NETWORK ERROR"
    EndIf
    sleep(2500)
    TrayTip("clears any tray tip","",0)
    TrayTip("ROHRFREI", $message,5,1)
    sleep(2500)
    TrayTip("clears any tray tip","",0)
    $i = $i + 6
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • @Holzwurm: Kann man das auch ohne ini? & ich will wissen was an meinem Code nicht stimmt!

    Greek: habe die " erst eingefügt, nach dem ich den Code online gestellt habe.

    immernoch kein Fortschritt!

  • Hmm ich weis nicht wieso das nicht funktiniert! Wenn ich die IP z.B in die Adressleiste eingebe lande ich auf der Web Page des Spiels (Was auch logisch ist, da es die Ip der Seite ist!)
    Wenn ich jetzt aber im Script die Seite eingebe(also "www.rappelz.gpotato.com") kommt wieder der Fehler. Ich glube das liegt an der Seite, wenn ich google oder autoit nehme wird mir angezeigt, dass die seiten Online sind!
    Hat jemand vieleicht eine Idee?

    funkey: Meinste mit netstat -n? Da wird mir dann, wenn ich den Launcher starte, die Ip des Launchers angezeigt (38.99.100.204:80).

  • Also erstmal danke allen für die Hilfe

    Weiteres:

    Ich habe jetzt mal was gecodet und würde gerne wissen wieso auch bei Forum nicht angezeigt wird, dass er Online ist (ist Online hab nachgeschaut^^)

    Spoiler anzeigen
    [autoit]

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

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

    #Region ### START Koda GUI section ###
    $Form1_1 = GUICreate("Rappelz Server-Status", 234, 105, 346, 207)
    $Label1 = GUICtrlCreateLabel("Web-Page:", 16, 24, 58, 17)
    $Label2 = GUICtrlCreateLabel("Forum:", 16, 48, 36, 17)
    $Button1 = GUICtrlCreateButton("Aktualisieren", 148, 28, 75, 57, 0)
    $webon = GUICtrlCreateLabel("Online", 80, 24, 40, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $foron = GUICtrlCreateLabel("Online", 80, 48, 40, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Label3 = GUICtrlCreateLabel("Test:", 16, 72, 28, 17)
    $teston = GUICtrlCreateLabel("Online", 80, 72, 40, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Func Aktualisieren()
    $webpage = InetGetSize("http://rappelz.gpotato.com/templates/common/images/global_logo.gif")
    $forum = InetGetSize("http://rappelz-forum.gpotato.com/media/templates/common/images/global_logo.gif")
    $test = InetGetSize("http://rappelz.gpotato.com/templates/common/images/global_logo.jpg")

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

    If $webpage > 0 Then
    GUICtrlSetState($webon, $GUI_ENABLE)
    ElseIf $forum > 0 Then
    GUICtrlSetState($foron, $GUI_ENABLE)
    ElseIf $test > 0 Then
    GUICtrlSetState($test, $GUI_ENABLE)
    EndIf
    EndFunc ;==>Aktualisieren

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    Call("Aktualisieren")
    EndSwitch
    WEnd

    [/autoit]

    Habe einen falschen Pfad bei "Test" eingefügt um zu testen was er macht, wenns falsch ist (wollte halt sicher gehen^^)

    • Offizieller Beitrag

    Was steht denn in der Console?

    Spoiler anzeigen
    [autoit]

    ;~ #include <Array.au3>
    ;~ $str = 'BinaryToString("0x46696C6544656C6574652824414631323331323329")'
    ;~ $erg = StringRegExp($str, '\("(.*)"\)', 3)
    ;~ _ArrayDisplay($erg)
    ;~ ConsoleWrite($erg[0] & @CRLF)

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

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

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

    #Region ### START Koda GUI section ###
    $Form1_1 = GUICreate("Rappelz Server-Status", 234, 105, 346, 207)
    $Label1 = GUICtrlCreateLabel("Web-Page:", 16, 24, 58, 17)
    $Label2 = GUICtrlCreateLabel("Forum:", 16, 48, 36, 17)
    $Button1 = GUICtrlCreateButton("Aktualisieren", 148, 28, 75, 57, 0)
    $webon = GUICtrlCreateLabel("Online", 80, 24, 40, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $foron = GUICtrlCreateLabel("Online", 80, 48, 40, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Label3 = GUICtrlCreateLabel("Test:", 16, 72, 28, 17)
    $teston = GUICtrlCreateLabel("Online", 80, 72, 40, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Func Aktualisieren()
    $webpage = InetGetSize("http://rappelz.gpotato.com/templates/common/images/global_logo.gif")
    $forum = InetGetSize("http://rappelz-forum.gpotato.com/media/templates/common/images/global_logo.gif")
    $test = InetGetSize("http://rappelz.gpotato.com/templates/common/images/global_logo.jpg")

    ConsoleWrite('!' & $webpage & $forum & $test & @CRLF)

    If $webpage > 0 Then
    GUICtrlSetState($webon, $GUI_ENABLE)
    ElseIf $forum > 0 Then
    GUICtrlSetState($foron, $GUI_ENABLE)
    ElseIf $test > 0 Then
    GUICtrlSetState($test, $GUI_ENABLE)
    EndIf
    EndFunc ;==>Aktualisieren

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    Aktualisieren()
    EndSwitch
    WEnd

    [/autoit]

    Mega

  • Sry, aber ich hab grad keine Ahnung was du damit meinst!

    [autoit]

    ;~ #include <Array.au3>
    ;~ $str = 'BinaryToString("0x46696C6544656C6574652824414631323331323329")'
    ;~ $erg = StringRegExp($str, '\("(.*)"\)', 3)
    ;~ _ArrayDisplay($erg)
    ;~ ConsoleWrite($erg[0] & @CRLF)

    [/autoit][autoit][/autoit][autoit][/autoit]
    • Offizieller Beitrag

    Hi,

    :D das auskommentierte oben war aus einem anderen Skript. Da habe ich Lenny geholfen.

    Ich meinte dies

    [autoit]

    ConsoleWrite('!' & $webpage & $forum & $test & @CRLF)

    [/autoit]

    Die Zeile gibt was in die Scite Console aus.

    Mega

    Edit : Die Console in Scite schaltest du mit F8 an!

  • Hmm, ok, Danke^^
    Ich versuch dann mal noch ein bsichen was.
    Will vieleicht sowas wie einen Ladebalken, der sagt wenn der Ping abgeschlossen ist, da versuche ich aber mal selbst was zu finden^^

    Goaku

  • Hi,
    is ja klar dass das nicht geht.

    Du überprüfst zuerst ob das erste Bild online ist. Danach machst du elseif. Das bedeutet nur wenn das erste Bild nicht online ist, wird geprüft ob das zweite bild online ist.

    So:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    #Region ### START Koda GUI section ###
    $Form1_1 = GUICreate("Rappelz Server-Status", 234, 105, 346, 207)
    $Label1 = GUICtrlCreateLabel("Web-Page:", 16, 24, 58, 17)
    $Label2 = GUICtrlCreateLabel("Forum:", 16, 48, 36, 17)
    $Button1 = GUICtrlCreateButton("Aktualisieren", 148, 28, 75, 57, 0)
    $webon = GUICtrlCreateLabel("Online", 80, 24, 40, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $foron = GUICtrlCreateLabel("Online", 80, 48, 40, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Label3 = GUICtrlCreateLabel("Test:", 16, 72, 28, 17)
    $teston = GUICtrlCreateLabel("Online", 80, 72, 40, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Aktualisieren()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    Aktualisieren()
    EndSwitch
    WEnd

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

    Func Aktualisieren()
    $webpage = InetGetSize("http://rappelz.gpotato.com/templates/common/images/global_logo.gif")
    $forum = InetGetSize("http://rappelz-forum.gpotato.com/media/templates/common/images/global_logo.gif")
    $test = InetGetSize("http://rappelz.gpotato.com/templates/common/images/global_logo.jpg")

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

    If $webpage > 0 Then GUICtrlSetState($webon, $GUI_ENABLE)
    If $forum > 0 Then GUICtrlSetState($foron, $GUI_ENABLE)
    If $test > 0 Then GUICtrlSetState($test, $GUI_ENABLE)
    EndFunc ;==>Aktualisieren

    [/autoit]
  • Hi,
    man bin ich blöd! Danke sehr Anno!
    Funktioniert jetzt^^
    Bloß habe ich immernoch das Ping Problem. Er gibt mir immer den gleichen Fehler aus, egal ob ich die Seite oder die Ip angebe. Und bei Gameserver oder Patchservern, kann ich es leider nicht so machen wie bei der Seite und dem Forum (Bilder auf größe überprüfen)

    EDIT: Wie könnte ich Autoit auslesen lassen was auf einer Internetseite steht? Ich habe mir überlegt, den Status der Server von einer PHP seite abzulesen (http://www.thestarfighters.de/ServerStatusRappelz.php . Also wenn da steht Online, soll das auch im Programm ausgegeben werden.


    Goaku

    2 Mal editiert, zuletzt von Goaku (7. November 2008 um 12:22)