Maison  >  Article  >  développement back-end  >  Comment envoyer un ping à une adresse IP et un numéro de port (IP:port) en PHP

Comment envoyer un ping à une adresse IP et un numéro de port (IP:port) en PHP

Susan Sarandon
Susan Sarandonoriginal
2024-10-18 12:09:43715parcourir

How to Ping an IP Address and Port Number (IP:port) in PHP

Comment envoyer un ping à une adresse IP et un numéro de port en PHP

Problème :

Développement un script pour cingler une adresse IP et un numéro de port (IP:port) pour vérifier la disponibilité du serveur.

Solution :

Le script initial fourni ne peut pinger que les sites Web, mais pas IP : ports. Pour résoudre ce problème, une version modifiée peut être utilisée :

<code class="php">function ping($host, $port, $timeout)
{
    $start = microtime(true);
    $fp = fsockopen($host, $port, $errno, $errstr, $timeout);
    $end = microtime(true);
    return $fp ? round((($end - $start) * 1000), 0) . " ms" : "down";
}

// Example usage
$host = "193.33.186.70";
$port = 80;
$ping = ping($host, $port, 10); // Set a timeout of 10 seconds

if ($ping != "down") {
    echo "Server is up with a ping of $ping";
} else {
    echo "Server is down";
}</code>

Ce script utilise fsockopen() pour établir une connexion TCP à l'adresse IP et au port spécifiés. Il mesure le temps nécessaire pour se connecter et renvoie le temps de ping en millisecondes, ou « en panne » si aucune connexion n'a pu être établie.

Autres considérations :

  • Pour les protocoles autres que TCP (tels que UDP), des efforts supplémentaires sont nécessaires pour implémenter les capacités de ping.
  • Le modèle OSI et les protocoles de couche de transport (ICMP et TCP) doivent être explorés pour une compréhension plus approfondie de la communication réseau.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn