I'm trying to automate finding pingable domains given an IP or a domain. The problem is that some domains don't actually return "pings", and on Linux, it just sits there forever (ugh!). So... Can someone tell me how to 'abort' or 'timeout' an itteration of a loop. Maybe start a timer and then check if a number of millis has gone by? But it seems that won't work b/c PHP isn't threaded, it will just hang at the exec() command right? Converseley, anyone know how to force a /bin/ping to automatically timeout (sans hitting CTRL+C)? I 'man ping' but it didn't seem to have that option. Here is the code I'm using...
$typeArray = array ( 'www' => false, 'ftp' => false, 'mail' => false, 'exchange' => false, 'owa' => false, 'dns' => false, 'dns1' => false, 'dns2' => false, 'dns3' => false, 'router' => false, 'firewall' => false, 'fw' => false, 'fw1' => false, 'sql' => false, 'db' => false, 'database' => false, 'crm' => false ); reset($typeArray); while ( list($key, $val) = each($typeArray) ) { $testDomain = $key.".".$domain; $pingtest = exec("/bin/ping -c 1 -q ".$testDomain); //echo "<I><FONT SIZE=-3>pingtest of ".$testDomain." = ".$pingtest."</FONT></I><BR>\n"; if ( strstr($pingtest,"rtt min") ) { $typeArray[$key] = gethostbyname($testDomain); echo "<INPUT TYPE='checkbox' NAME='IPcheckbox[]' VALUE='".$typeArray[$key]."' CHECKED>".$testDomain." (".$typeArray[$key].")<BR>\n"; $ipCounter++; } //sleep(3); } if ($ipCounter == 0) echo "<B>No pingable domains found in our test list</B><BR>"; -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php