Not sure on linux, but on freebsd ping's man page says:

-t timeout Specify a timeout, in seconds, before ping exits regardless
of how many packets have been recieved.

On Fri, 7 Feb 2003, Daevid Vincent wrote:

> 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
>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to