PHP peut-il envoyer un ping à une combinaison IP:Port ?
Lorsque vous essayez de déterminer la disponibilité d'un serveur, une approche courante consiste à envoyer un ping à son Adresse IP et un port spécifié. Cependant, un script conçu pour pinger les sites Web peut ne pas suffire à cet effet.
La solution
Pour cingler une combinaison IP:port en PHP, on peut exploiter le fsockopen () fonction. Voici un script édité qui peut accomplir cela :
<code class="php">function ping($host, $port, $timeout) { $start = microtime(true); $socket = fsockopen($host, $port, $errno, $errstr, $timeout); if (!$socket) { return "down"; } $end = microtime(true); fclose($socket); return round((($end - $start) * 1000), 0)." ms"; }</code>
Dans ce script, après avoir établi une connexion à l'aide de fsockopen(), le temps de ping est calculé en utilisant la différence entre les horodatages de début et de fin. Si la connexion échoue, la fonction renvoie "down".
Remarque : Comme indiqué dans la réponse fournie, ce script ne fonctionne que pour les connexions TCP. Pour d'autres protocoles, des techniques plus avancées peuvent être nécessaires, impliquant la génération et l'analyse de paquets personnalisés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!