Ping est le nom d'une commande informatique (développée par Mike Muuss) permettant d'envoyer une requête ICMP 'Echo' d'une machine à une autre machine. Si la machine ne répond pas il se peut que l'on ne puisse pas communiquer avec elle.
L'analogie avec le ping-pong est que cette commande envoie des paquets (ICMP) et attend une réponse qui nous informera de l'état de la machine distante.
Cette commande réseau de base permet d'obtenir des informations et en particulier le temps de réponse de la machine à travers le réseau et aussi quel est l'état de la connexion avec cette machine (renvoi code d'erreur correspondant).
Mike Muuss a écrit ce programme en décembre 1983 pour déboguer un comportement anormal sur réseau IP. Le nom est tiré de l'onomatopée décrivant le son émis par un sonar puisque leur action est similaire (émission d'un signal qui vient rebondir sur une cible pour revenir à l'envoyeur). Par la suite, David L. Mills a fourni un rétro-acronyme : "Packet InterNet Groper (Grouper)".
Le principe du ping peut facilement être étendu au-delà du ping d'adresse IP ou de nom.
Exemple de ping sous Windows, vers l'adresse IP du serveur DNS de Wikipédia :
C:\>ping 66.230.200.16 Pinging 66.230.200.16 avec 32 octets de données: Réponse de 66.230.200.16: octets=32 temps<10ms TTL=255 Réponse de 66.230.200.16: octets=32 temps<10ms TTL=255 Réponse de 66.230.200.16: octets=32 temps<10ms TTL=255 Réponse de 66.230.200.16: octets=32 temps<10ms TTL=255
Il est également possible d'effectuer un ping sur un nom au lieu d'une adresse IP.
Pour enregistrer le résultat de la commande ping dans un fichier texte tapez dans une Invite de commandes : ping 66.230.200.16 > c:\ping.txt
Exemple de ping sous Linux, vers fr.wikipedia.org :
$ ping fr.wikipedia.org PING r, r.knams.wikimedia.org (145.97.39.137): 56 data bytes 64 bytes from 145.97.39.137: icmp_seq=0 ttl=53 time=51.9 ms 64 bytes from 145.97.39.137: icmp_seq=1 ttl=53 time=16.9 ms 64 bytes from 145.97.39.137: icmp_seq=2 ttl=53 time=16.7 ms --- rr.knams.wikimedia.org ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 16.7/28.5/51.9 ms
Le TTL (Time-To-Live), signifie le nombre maximal de routeurs que le message pourra emprunter avant d'être détruit.
Exemple de (f)ping(6) sous Linux, vers une adresse IPv6 :
$ fping6 fe80::211:d8ff:fe25:2092 fe80::211:d8ff:fe25:2092 is alive
Autre exemple de (f)ping(6) sous Linux, vers une adresse IPv6 :
$ fping6 -c 2 -e fe80::211:d8ff:fe25:2092 fe80::211:d8ff:fe25:2092: [0], 64 bytes, 0.06 ms (0.06 avg, 0% loss) fe80::211:d8ff:fe25:2092: [1], 64 bytes, 0.06 ms (0.06 avg, 0% loss) fe80::211:d8ff:fe25:2092: xmt/rcv/%loss = 2/2/0%, min/avg/max = 0.06/0.06/0.06