Před časem jsem řešil jak na ping nezavisle na platforme. Ano vím že linux mac i windows maji nativní ping ale liší se paremetry a ne vždy jde využít na každém hostingu.
Proto jsem hledal alternativu která využívá socket.

function ping($host, $timeout = 1) {
  /* ICMP ping packet with a pre-calculated checksum */
  $package = "\x08\x00\x7d\x4b\x00\x00\x00\x00PingHost";
  $socket  = socket_create(AF_INET, SOCK_RAW, 1);
  socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => $timeout, 'usec' => 0));
  socket_connect($socket, $host, null);
  $ts = microtime(true);
  socket_send($socket, $package, strLen($package), 0);
  if (socket_read($socket, 255)) {
    $result = microtime(true) - $ts;
  } else {
    $result = false;
  }
  socket_close($socket);
  if ($result)
    return round(($result * 1000), 0)." ms".PHP_EOL;;
  else
    return "down".PHP_EOL;
}
 
for ($a = 0;$a < 10000 ;$a++ ) {
  print ping( "seznam.cz" );
}

Zanechat odpověd

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile=""> 

vyžadováno