Ping

Hallo,

mir ist aufgefallen das manche Netzwerkgeräte über die Windowsconsole auf einen Ping antworten und mit IPS Sys_Ping nicht.

z.B. der Bootloader vom 1611 und mein Netbook über WLAN

Hat jemand einen Tipp für mich woran das liegen könnt?

Zeig mal dein Skript.

Hallo,

LanWatchDog:

<?

// (C) by IP-Symcon 2009
// Trigger: z.B. alle 5 Minuten
$ID = 26376 /*[LAN Watch Dog]*/;


foreach(IPS_GetChildrenIDs($ID) as $item){   // alle Unterobjekte
    $id_info = IPS_GetObject($item);
    $id_typ = $id_info['ObjectType'];
    if ($id_typ == 2){                                      // nur bei Variablen
        $id_adr = $id_info['ObjectInfo'];
        $ping = Sys_Ping($id_adr, 2000);             // Ping max. 2 Sek. warten
        if($IPS_SENDER == "Execute") {                     // zum Testen
            echo "IP: $id_adr 
";
            echo "Ping: " .(int)$ping. "

";
        }
        SetValue($item, $ping);                      // Ping-Ergnis speichern
    }
}
?>

1611er:

$ping = Sys_Ping("192.168.2.34", 2000);
print_r ( $ping);


if ($ping == false)
{
echo "keine Verbindung zum BL";
return;
}

Ich benutze auch den Sys_Ping von IPS nicht.
Einige meiner Netzwerkgeräte benötigen mehrere Durchläufe hier $x.


$online = shell_exec("ping $ip[$i] -n $x");

//Wenn diese Strings enthalten sind, dann keine Verbindung
if(stristr($online,"100%") and !stristr($online,"TTL") or	stristr($online,"nicht") and !stristr($online,"TTL"))
{
   $responce = false;
}
else
{
   $responce = true;
}



Hallo Thomas,

kannst Du mir das erklären?

$ip: Vermutlich die IP: "192.168.2.34
$i: ?
$x: Vermutlich die durchläufe: z.B. 4

Ein blick in die Doku hilft manchmal;)

PHP: shell_exec - Manual

$ip: Vermutlich die IP: "192.168.2.34
$i: ?

Ich hab in der Doku nichts gefunden.

Was bedeutet das $i?

VG Dirk

Hallo Dirk,

die IP’s von Ferengi-Master stehen in einem Array. Mit dem $i kann beispielsweise über eine Schleife auf einzelne Einträge des Arrays zugegriffen werden.


$ip = array("192.168.178.100","192.168.178.101");
$x = 5;  //Anzahl der Pings

//Ping auf 192.168.178.100
$i = 0;
$online0 = shell_exec("$ip[$i] -n $x");  

//Ping auf 192.168.178.101
$i = 1;
$online1 = shell_exec("$ip[$i] -n $x"); 

Schöne Grüße
Roland

Genau so.:wink: