Maison >développement back-end >tutoriel php >Comment envoyer un ping à un port de serveur avec PHP : un guide étape par étape

Comment envoyer un ping à un port de serveur avec PHP : un guide étape par étape

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-18 10:52:03795parcourir

How to Ping a Server Port with PHP: A Step-by-Step Guide

Pinger un port de serveur avec PHP

Comme vous l'avez correctement noté, le script PHP fourni est conçu pour envoyer un ping aux sites Web par leur nom de domaine . Pour l'adapter au ping d'adresses IP et de numéros de port spécifiques, nous devons procéder à quelques ajustements.

La fonction clé dont vous aurez besoin est fsockopen(), qui vous permet d'établir une connexion socket à un serveur distant. En spécifiant l'adresse IP et le numéro de port du serveur, vous pouvez tenter de vous connecter et vérifier si le serveur accepte les connexions sur ce port spécifique.

Voici une version révisée de la fonction ping :

<code class="php">function pingPort($ip, $port, $timeout) 
{ 
  $tB = microtime(true); 
  $fP = fsockopen($ip, $port, $errno, $errstr, $timeout); 
  if (!$fP) { return "down"; } 
  $tA = microtime(true); 
  return round((($tA - $tB) * 1000), 0)." ms"; 
}</code>

Cette fonction prend trois arguments :

  • $ip : L'adresse IP du serveur sur lequel vous souhaitez pinger
  • $port : Le numéro de port auquel vous souhaitez envoyer un ping
  • $timeout : Le temps (en secondes) à attendre pour une réponse avant d'abandonner

Si le la connexion peut être établie, la fonction renverra le temps aller-retour en millisecondes. Sinon, il retournera "down" pour indiquer que le port n'est pas accessible.

Pour utiliser la fonction, vous pouvez simplement l'appeler ainsi :

<code class="php">$ip = "192.168.1.100";
$port = 80;
$timeout = 10;

$ping = pingPort($ip, $port, $timeout);

if ($ping == "down") {
  echo "Port $port is not reachable on $ip.";
} else {
  echo "Ping to $ip:$port: $ping ms";
}</code>

Ce script affichera le temps de ping si le port est accessible, ou il affichera un message d'erreur si la tentative de connexion échoue.

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