Sys_Ping Problem


          $bool = Sys_Ping("192.xxx.x.xx",1000);
          if($bool)
          {
                echo "...Verbindung";
          }
          else
          {
              echo "... keine Verbindung";
          }


Obwohl ein ping auf Systemebene geht, bringt er immer - keine Verbindung. Hat jemand auch schon so etwas gehabt?
AV & Firewall hab ich mal zum testen ausgeschalten…

Hallo Thomas

Also bei mir gehts mit:


$ip = "192.168.111.111";
$ping = Sys_Ping($ip, 1);
if ($ping)
  $erg = "DA";
else
  $erg = "WOANDERS";
echo "IP: " . $ip . " ist " . $erg . "
";

Gruss, Andreas

Hallo Andreas,

der Syntax ist auch ok, muß irgendetwas an meinem PC oder IPS sein…
Die localhost Adresse geht übrigens.:confused:

Irgend ne Firewall drauf, die ICMP filtert?

Muß das Thema nochmal hochholen, Firewall & AV auf Ziel und Local Host abgeschalten, ping auf Systemebene erreicht den Client, nur IPS bringt ein false beim sys_ping. Betriebssystem ist Vista SP1…:frowning: Hat jemand auch solche Probleme?

Hast du einen Router mit Firewall?

Wenn ja, dann könntest du nochmal probieren testweise auch bei diesem die Firewall zu deaktivieren.

„Portbeschränkung“

Da der IPS Befehl sys_ping bei mir leider aus irgendwelchen Gründen nicht funktioniert, hier eine Lösung dazu.

Das Script wird bei mir jede Minute einmal mittels:


IPS_RunScriptEx(xxxxx /*[.Scripte Allgemein\Allgemein\ip_test]*/,array());

aufgerufen (dieser Aufruf erfolgt um keine Wartezeit im Dashboard zu erzeugen, das Script läuft dann im Hintergrund) und prüft ob im Netzwerk die IP eines Gerätes (Port meist 80 bei Routern / 445 bei PC´s mit Dateifreigabe) zu erreichen ist und setzt eine Variable um dies im Dashboard oder im Webfront anzuzeigen.


    //-------------------------------------- ID´s -------------------------------

    $id_ip_kino          = xxxxx /*[.Scripte Allgemein\Allgemein\ip_test\ip_kino]*/ ;
    $id_ip_gateway       = xxxxx /*[.Scripte Allgemein\Allgemein\ip_test\ip_gateway]*/ ;
    $id_ip_gateway_wz    = xxxxx /*[.Scripte Allgemein\Allgemein\ip_test\ip_gateway_wz]*/ ;
    $id_ip_pc_sr         = xxxxx /*[.Scripte Allgemein\Allgemein\ip_test\ip_pc_sr]*/ ;
    $id_ip_server        = xxxxx /*[.Scripte Allgemein\Allgemein\ip_test\ip_server]*/ ;
    $id_ip_notebook_nad  = xxxxx /*[.Scripte Allgemein\Allgemein\ip_test\ip_notebook_nad]*/ ;
    
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------

     $ip[1] = "192.168.x.x";     $port[1] = "445";
     $ip[2] = "192.168.x.x";     $port[2] = "80"; 
     $ip[3] = "192.168.x.x";     $port[3] = "80"; 
     $ip[4] = "192.168.x.x";     $port[4] = "445";
     $ip[5] = "192.168.x.x";     $port[5] = "445";
     $ip[6] = "192.168.x.x";     $port[6] = "445";

   if(count($ip) > 0)
   {
       for($i = 1; $i <= count($ip); $i++)
        {
          if (!@$fp = fsockopen($ip[$i], $port[$i], $errno, $errstr, 1))
         {
             $responce = false;
         }
         else
         {
             $responce = true;
         }

         if(!$responce)
         {
            if($i == 1)    SetValue($id_ip_kino, false);
            if($i == 2)    SetValue($id_ip_gateway, false);
            if($i == 3)    SetValue($id_ip_gateway_wz, false);
            if($i == 4)    SetValue($id_ip_pc_sr, false);
            if($i == 5)    SetValue($id_ip_server, false);
            if($i == 6)    SetValue($id_ip_notebook_nad, false);
         }
         else
         {
            if($i == 1)    SetValue($id_ip_kino, true);
            if($i == 2)    SetValue($id_ip_gateway, true);
            if($i == 3)    SetValue($id_ip_gateway_wz, true);
            if($i == 4)    SetValue($id_ip_pc_sr, true);
            if($i == 5)    SetValue($id_ip_server, true);
            if($i == 6)    SetValue($id_ip_notebook_nad, true);
         }
      }
    }


EDIT: Ich stand grad mächtig aufm Schlauch… Portscan heißt natürlich das zauberwort und OSX kann das sogar mit Bordmitteln… ich glaub ich hab zu wenig schlaf… oO

Hi, ich hab dein Script einfach mal übernommen, funktioniert auch soweit. Hab nur ein paar Probleme mit den Ports, wo bekomme ich raus welche Ports bei welchen Geräten offen sind? iPhones z.b. oder Airport Expresses etc. ?

Danke,
Pollibus

Hallo,

Ich habe auch Probleme mit sys_ping und bin deshalb auf diesen Thread gestoßen. Mit Feringis Methode http://www.ip-symcon.de/forum/f52/sys_ping-problem-6830/#post65291 funktioniert es wunderbar.
Jetzt kommt es natürlich vor, dass der eine oder andere Teilnehmer manchmal offline ist. Dies wird im Logfile mit einer ganz schön langen „Wuarscht“ niedergeschrieben. Kann man diese Message eventuell unterdrücken? :confused:

26.09.2012 00:00:04.068 | 32478 | MESSAGE | ExecuteThreadID #1   | [Technik\Netzwerk\Netzwerk_Check\Online_Offline_fsocket] = 
Warning: fsockopen(): unable to connect to 192.168.xx.xx:xxx (Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat.
) in C:\IP-Symcon\scripts\32478.ips.php on line 13
[0] in function fsockopen in C:\IP-Symcon\scripts\32478.ips.php on line 13

Das @ davor sollte die Fehlermeldung eigentlich verhindern. (Zeile 13)…

Yep! DANKE Ferengi … das wars :smiley:

Hallo,

ich habe folgendes Problem. Ich möchte mein Smartphone (Androide) per SYS_PING abfragen. Solang es nicht im Standby ist geht es auch.

Im Standby bekomme ich keine Antwort mehr zu mindestens nicht über Sys_Ping in IPS.

Die Fritzbox erkennt das Handy aber noch, und ein PING auf Dos Ebene erkennt auch noch ein Handy, was kann ich da noch machen.

PING.jpg

Gruß Uwe

im Standby ist doch WLan aus als Standart.

Hallo,

nein man ganz es einstellen das es an ist. Es schein aber langsamer zu laufen, und SYS_PING (TimeOut) hat da Probleme mit.

Hier mit schein es zu gehen.

$ip = "192.168.1.104";
$x = 3;  //Anzahl der Pings

$online = shell_exec("ping $ip -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;
}

setValue(19180,$responce);

print $responce;

Das ping im DOS-Fenster hat da auch sein Problem - 2 Pings verloren.
Vielleicht solltest du Sys_Ping auch 4x aufrufen.

Hallo,

Stimmt 2 Pings veloren, aber 2 Pings OK, bei SYS_PING bekomme ich kein Ping zurück.

Gruß Uwe

Bei sys_ping auch mal einen höheren Timeout probiert ?

Gesendet von meinem iPad mit Tapatalk HD

Ja, ab 3000 zeigt er immer (true) an, auch wenn das Handy AUS oder nicht hier ist.

Gruß Uwe

Das kommt mir aber sehr bekannt vor!
Ist aber schon sehr lange her.
Lies mal diesen Thread
http://www.ip-symcon.de/forum/threads/5852-Sys_Ping?highlight=sys_ping