Added lot of junk laying around on harvie.cz
[mirrors/Programs.git] / php / skripty / ping.php
diff --git a/php/skripty/ping.php b/php/skripty/ping.php
new file mode 100644 (file)
index 0000000..46906c9
--- /dev/null
@@ -0,0 +1,83 @@
+<?php\r
+\r
+function ping($host) {\r
+   $package = "\x08\x00\x19\x2f\x00\x00\x00\x00\x70\x69\x6e\x67";\r
+\r
+   /* create the socket, the last '1' denotes ICMP */   \r
+   $socket = socket_create(AF_INET, SOCK_RAW, 1);\r
+  \r
+   /* set socket receive timeout to 1 second */\r
+   socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 3, "usec" => 0)); //<-- Change TimeOut Here <--\r
+  \r
+   /* connect to socket */\r
+   socket_connect($socket, $host, null);\r
+  \r
+   /* record start time */\r
+   list($start_usec, $start_sec) = explode(" ", microtime());\r
+   $start_time = ((float) $start_usec + (float) $start_sec);\r
+  \r
+   socket_send($socket, $package, strlen($package), 0);\r
+  \r
+   if(@socket_read($socket, 255)) {\r
+       list($end_usec, $end_sec) = explode(" ", microtime());\r
+       $end_time = ((float) $end_usec + (float) $end_sec);\r
+  \r
+       $total_time = $end_time - $start_time;\r
+      \r
+       return $total_time;\r
+   } else {\r
+       return false;\r
+   }\r
+  \r
+   socket_close($socket);\r
+}\r
+\r
+//READLINE\r
+function readline ( $fp ) {\r
+  //echo $prompt;\r
+  \r
+  $t = "";\r
+  $c = "";\r
+  \r
+  while(1) {\r
+    $c = fgetc($fp);\r
+    if ($c == "\n") {    // && ($c == "\r") //May be later on oher systems\r
+      return $t;\r
+    } else {\r
+      $t = ($t.$c);\r
+    }\r
+  }\r
+\r
+   return $t;\r
+    \r
+}\r
+//READLINE END\r
+\r
+//Code\r
+\r
+//echo (ping ("192.168.2.1"));\r
+$fp = fopen("hosts.txt", "r+"); //host list file (hosts separated by newline, ends with two empty lines)\r
+\r
+$fhost = "EMPTY";\r
+while ($fhost != "") {\r
+\r
+  $ping = "";\r
+  $fhost = trim(readline($fp));\r
+  \r
+  if ( $fhost != "" ) {\r
+    echo("HOST: ".$fhost);\r
+    \r
+    try {\r
+      $ping = ping($fhost);\r
+    } catch(string $err) {}\r
+    \r
+    if ( ($ping != "") && ($ping > "0") ) {\r
+      echo(" - UP PING: ".$ping." sec.\n");\r
+    } else {\r
+      echo (" - TIMED OUT\n");\r
+    }\r
+  }\r
+  \r
+}\r
+\r
+?>\r
This page took 0.500598 seconds and 4 git commands to generate.