Syntax Sys_Ping

Hallo,

komme mit der Syntax von Sys_Ping nicht klar !

Kann jemand mir ein Beispiel geben ?

danke !

mfG Franz

[CTRL]-[space-bar] hilft massenhaft…
(Habe mir selber noch nicht mit dieser funktion beschäftigd)

Hallo Franz,

Paresy hat sich in einem anderen Threat mal dazu mit einem Beispiel geäussert:

echo Sys_Ping(„192.168.3.10“, 255, 1000);

…so klappt es zumindest bei mir.

255 -> TTL?
1000 -> Timeout?

Achtung: läuft anscheinend nur mit Administratorrechten sonst „socket error 10013“.

Gruß
Christian

So wie ich das kenne steht TTL fur Time To Live oder wie-weit-solls-gehen?
Ich weis das ein domain-server ein TTL hat von 255, ein normaler server 128 und so geht’s runter. Irgendwie könnte man damit bestimmen ob durch bestimmte kategorien von routers der ping weiter propagandiert werden soll…
Aber besser mal ein ‚kenner‘ ans wort lassen. -> und gleich nutzen als eintrage in das wiki

Timeout: wie lange soll gewartet werden bis man eine antwort bekommt bevor der ping anfrage als ‚unable‘ bestimmt wird.

Jepp ihr habt recht.

Sys_Ping(IP, TTL, Timeout);

Timeout ist die Wartezeit

Mögliche Ausgaben:

-Response from host %HOST% in %RoundTripTime% ms
-Unknown error
-Timed out
-Host %HOST% reports destination network unreachable.
-'Hope %TTL% %HOST%: TTL expired.
-Undefined error

Ja der TTL bezeichnet die Anzahl der Hops (Router) die das IP Paket nehmen wird. TTL = 20 der 20 Router schickt es noch weiter. Nummer 21 verwirft es. Das wird verwendet um Routing Loops im Netz zu vermeiden.

Gruß

Oliver

freu freu … das war’s HOP(s)LA :smiley:

Wie bekomme ich das im Array zum laufen?
Da Sys_Ping ja leider ein " vor und nach der IP will, klappt das bei mir nicht.
Habe schon etwas experimentiert, aber die chr(34) klappen auch nicht.

// **** Überwachung der X-Ports ***********
$watchtemp=array("192.22.73.53","192.22.73.54","192.22.73.55");
foreach($watchtemp as $item)
{
$ping1= Sys_Ping(chr(34).$watchtemp.chr(34), 50, 250) ;
echo $ping1."
";
if(substr($ping1,0, 4) <>'Resp')
{
    sms($watchtemp." wurde nicht erreicht","2","00xxxxxx");
    TT_SendMail('jm@xxxxxxxx.de',"$watchtemp."  wurde nicht erreicht",' ');
    $Ergebnis=IPS_Execute("ips.exe", "-r", false, true);
}
}

Ich denk beim eigentlichen Ping ist nur die falsche Variable drinnen - statt $watchtemp sollte das $item rein. Dann wirds schon klappen.

// **** Überwachung der X-Ports ***********
$watchtemp=array("192.22.73.53","192.22.73.54","192.22.73.55");
foreach($watchtemp as $item)
{
$ping1= Sys_Ping($item, 50, 250) ;
echo $ping1."
";
if(substr($ping1,0, 4) <>'Resp')
{
    sms($watchtemp." wurde nicht erreicht","2","00xxxxxx");
    TT_SendMail('jm@xxxxxxxx.de',"$watchtemp."  wurde nicht erreicht",' ');
    $Ergebnis=IPS_Execute("ips.exe", "-r", false, true);
}
}

oder folgendes Codegeschnippsel liefert bei mir das gewünschte Ergebnis:


$ping=array("192.168.10.90", "192.168.10.22", "192.168.10.4");

foreach($ping as $item) {
   echo $item."
";
   $responce=Sys_Ping($item, 20, 1000)."
";
   echo $responce;
   if(substr($responce,0, 4) <>'Resp') {
      echo $item . " kann nicht erreicht werden";
      // restliches usw.
   }
}

Grüße,
Josef.

Das Problem ist aber, dass nur geprüft wird ob der XPORT übers Netzwerk zu erreichen ist, was ja nichts darüber aussagt ob IPS ein Connect hat.
Geht das auch irgendwie abzufragen?

da geb ich dir recht - ist zwar ein weiteres Problem und auch für mich interessant wie das gelöst werden könnte.

Da würde mich dann auch noch interessieren, ob das bei anderen Instanzen auch anwendbar ist z.B. um zu sehen, ob die WinLirc Instanz noch einen Connect zum fremden IRTrans Server hat oder ob der Link quasi „broken“ ist durch Neustart, Nichterreichbarkeit etc.

Grüße,
Josef.

Uber telnet den port anstossen ??
Aber wie das automatisiert werden soll?
php wird bestimmt mit telnet commando’s zu recht - aber wie das xport commuiciert - keine ahnung.

Angeblich soll die 2.0 das besser überwachen können.
Ich hab aber keine Beta.

Zwischenzeitlich will ich mir einfach so behelfen.
Einige der Adressen in meinem Netz sind nur über Funk erreichbar. Problematisch sind auch kurze Stromausfälle beim Xport, da IPS, bzw. der CPR-Manager das nicht merken.

Der CPR-Manager sagt bei kurzem Stromausfall immer noch, der Port sei „open“, obwohl er es nicht ist.

Meine bisherige Beobachtung:
Beim beenden von IPS schließt der CPR-Manager die Ports und macht sie beim Neustart wieder auf.

Deshalb starte ich IPS einfach neu, wenn der Ping nicht mehr klappt.

Möchte dieses Thema nochmal ansprechen. Und vieleicht kann paresy mal was dazu sagen. Wie kann man feststellen ob der XPort in IPS noch aktiv ist und ihn vieleicht automatisch oder per PHP Script connecten…
Es ist leider so, dass manchmal nach Neustart von IPS oder Absturz der Connect ausfällt und man nur manuell den Button im ClientSocket drücken muß um die Verbindung wieder herzustellen.