47 votes

Différence entre le ping avec et sans http://

J'essaie de faire un ping de mon site web http://www.example.com/ et il se résout en une adresse IP inconnue et s'arrête.

PING http://www.example.com/ (198.105.254.228): 56 data bytes 
Request timeout for icmp_seq 0 
Request timeout for icmp_seq 1 
Request timeout for icmp_seq 2

mais lorsque je fais un ping example.com il fonctionne

Qu'est-ce qui m'échappe ?

107voto

DavidPostill Points 140654

J'essaie de faire un ping de mon site web http://www.example.com/ et il se résout en une adresse IP inconnue et s'arrête.

PING http://www.example.com/ (198.105.254.228): 56 data bytes
Request timeout for icmp_seq 0

L'argument de ping est un nom d'hôte (ou une adresse IP).

Les éléments suivants fonctionneront donc tous :

ping example.com
ping www.example.com
ping 127.0.0.1

D'autre part,

ping http://www.example.com/

ne fonctionnera pas comme http://www.example.com/ est un formulaire HTTP Localisateur de ressources uniformes (URL) n'est pas un nom d'hôte valide (bien qu'une partie soit un nom d'hôte).

Une URL HTTP est composée de 4 parties :

  • Schéma - toujours présent
  • Nom d'hôte - toujours présent
  • Chemin ou tige - toujours présent mais parfois nul
  • Paramètres - optionnels

Ping ne reconnaît normalement pas les URL comme un nom d'hôte de destination valide.

Notes :

  • Tous les URL n'ont pas le format mentionné ci-dessus.

  • Un URL complet se compose d'un spécificateur de schéma de dénomination suivi d'un dont le format est fonction du schéma de nommage.

  • Le format d'un URL est défini dans la spécification de l'IETF Localisateurs de ressources uniformes (URL)


Détournement de DNS

Une exception à cette règle peut se produire si le serveur DNS (qui résout les noms d'hôtes en adresses IP) est configuré pour renvoyer une adresse IP valide même si un nom d'hôte non valide est fourni.

Cela peut se produire si un FAI détourne vos requêtes DNS.

Extrait de la réponse Pourquoi ping se résout-il en une IP 198.105.254.228 pour n'importe quel nom d'hôte aléatoire que je tape ? par Michael Hampton :

Ils essaient d'être "utiles" en redirigeant les demandes pour des domaines inexistants vers des domaines non existants. domaines inexistants vers un service en marque blanche t des résultats de recherche et de la publicité, dont tout le monde, sauf vous, tire une partie des recettes. revenus.

Heureusement, ils disposent d'un page des préférences w l'éteindre.

33voto

Hunter Dolan Points 443

Lorsque vous exécutez la commande ping avec une chaîne qui n'est pas une adresse IP, elle doit d'abord résoudre l'adresse IP de l'hôte que vous essayez d'interroger.

Lorsque vous courez :

$ ping example.com

Le serveur DNS renvoie l'adresse IP du serveur qui héberge le site web.

Cependant, lorsque vous préfixez le protocole et le chemin d'accès pour créer une URL http standard, tout cela est envoyé au serveur DNS pour être résolu.

Ainsi, au lieu que le serveur DNS trouve l'enregistrement pour example.com il semble pour mémoire http://example.com/ qui n'est pas un nom d'hôte valide.

De nombreux serveurs DNS ne renvoient rien. Dans ce cas, la commande ping se soldera par une erreur de résolution DNS.

Cependant, votre serveur DNS renvoie l'adresse IP 123.456.789.000 . L'adresse semble être un service de suggestion de Time Warner Cable pour aider les utilisateurs qui ont mal saisi l'URL dans leur navigateur.

Mais la commande ping prend cela au pied de la lettre et croit que le nom d'hôte http://example.com/ (qui n'est pas un nom d'hôte valide) se résout à l'adresse 123.456.789.000 .

La raison pour laquelle la commande ping échoue après cela est que 123.456.789.000 ne répond pas aux requêtes ICMP.

21voto

Jake Newkirk Points 133

Le http:// signifie hyper text transfer protocol, le protocole utilisé pour accéder aux pages web. Le ping d'un serveur n'utilise pas le protocole HTTP, mais consiste en un message ICMP (internet control message protocol), de sorte que le http:// n'a pas de sens dans ce contexte.

0voto

MattW Points 11

De toute façon, pourquoi utiliser "ping" ? Cela ne fonctionnera pas si un pare-feu bloque le trafic "ping".

À mon avis, si vous voulez tester un serveur web, il est préférable d'utiliser telnet', vous pouvez ainsi tester l'hôte et le port sur lequel il doit être à l'écoute.

ex : Pour tester votre serveur web telnet www.mywebserver.com 80 sur l'écran vide, tapez "get" puis "enter". et vous devriez obtenir une pile de réponses http en retour du serveur web. ( ex : HTTP/1.1 400 Bad Request... )

Cela m'indique que non seulement le serveur est en place, mais qu'il écoute et répond sur le port 80. (Je m'attends également à ce que tout pare-feu laisse passer le port 80 vers mon serveur web).

De même, "telnet" fonctionne également pour tester les serveurs de messagerie, ftp et à peu près n'importe quoi d'autre.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X