--- /dev/null
+<?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