Estoy tratando de hacer ping a mi sitio web http://www.example.com/
y se resuelve en una dirección IP desconocida y se agota el tiempo de espera.
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
pero cuando hago ping example.com
funciona
¿Qué es lo que me estoy perdiendo aquí?
ping
ygetaddrinfo()
amigos pasan a través de las barras, no sabía que56 data bytes
es un defecto común, etc .: Por favor, tome esto como un signo que sus esfuerzos por aprender más sobre las cosas antes de intentar ayudar serían apreciados.Respuestas:
Estoy tratando de hacer ping a mi sitio web http://www.example.com/ y se resuelve en una dirección IP desconocida y se agota el tiempo de espera.
El argumento para hacer ping es un nombre de host (o una dirección IP).
Entonces lo siguiente funcionará:
Por otra parte,
no funcionará, ya que http://www.example.com/ es un Localizador uniforme de recursos (URL) HTTP que no es un nombre de host válido (aunque parte de él es un nombre de host).
Una URL HTTP se compone de 4 partes:
Ping normalmente no reconocerá las URL como un nombre de host de destino válido.
Notas :
No todas las URL tienen el formato mencionado anteriormente.
Una URL completa consta de un especificador de esquema de nombres seguido de una cadena cuyo formato es una función del esquema de nombres.
El formato de una URL se define en la especificación IETF Localizadores uniformes de recursos (URL)
Secuestro de DNS
Puede ocurrir una excepción a lo anterior si el servidor DNS (que resuelve los nombres de host en direcciones IP) está configurado para devolver una dirección IP válida, incluso si se proporciona un nombre de host no válido.
Esto puede suceder si un ISP está secuestrando sus consultas DNS.
De la respuesta ¿Por qué el ping se resuelve a una IP 198.105.254.228 para cualquier nombre de host aleatorio que escriba? por Michael Hampton :
fuente
Cuando ejecuta el comando ping con una cadena que no es una dirección IP, primero debe resolver la dirección IP del host que está intentando hacer ping.
Cuando corres:
$ ping example.com
El servidor DNS devuelve la dirección IP del servidor que aloja el sitio web.
Sin embargo, cuando prefija el protocolo y la ruta para crear una URL http estándar que se envía al servidor DNS para su resolución.
Entonces, en lugar de que el servidor DNS encuentre el registro
example.com
, busca el registrohttp://example.com/
que no es un nombre de host válido.Muchos servidores DNS volverán sin nada. En ese caso, el comando ping simplemente generará un error de resolución de DNS.
Sin embargo, su servidor DNS devuelve la dirección IP
123.456.789.000
. La dirección parece ser un servicio de sugerencias de Time Warner Cable para ayudar a los usuarios que escribieron mal la URL en su navegador.Pero el comando ping toma esto literalmente y cree que el nombre de host
http://example.com/
(que no es un nombre de host válido) se resuelve en la dirección123.456.789.000
.La razón por la cual el comando ping expira después de eso es porque
123.456.789.000
no responde a las solicitudes ICMP.fuente
Http: // significa protocolo de transferencia de hipertexto, el protocolo utilizado para acceder a las páginas web. Hacer ping a un servidor no usa HTTP, sino que consiste en un mensaje ICMP (protocolo de mensajes de control de Internet), por lo que http: // no tiene sentido en este contexto.
fuente
Request timeout for icmp_seq 0
puede ver el ICMP allí, lo que significa la secuencia ICMP 0, 1, 2 ...¿Por qué usarías 'ping' de todos modos? No funcionará si hay un cortafuegos en el camino que bloquea el tráfico 'ping'.
En mi opinión, si va a probar un servidor web, entonces es mejor usar 'telnet', entonces puede probar el host y el puerto en el que debería estar escuchando.
por ejemplo: Para probar su servidor web telnet www.mywebserver.com 80 en la pantalla en blanco, escriba 'get' y luego 'enter' y debería recibir un montón de respuesta http del servidor web. ( por ejemplo: HTTP / 1.1 400 Solicitud incorrecta ... )
Esto me dice que no solo el servidor está 'activo', sino que también está escuchando y respondiendo en el puerto 80. (También esperaría que cualquier firewall deje pasar el puerto 80 a mi servidor web)
Del mismo modo, 'telnet' también funciona para probar servidores de correo, ftp y casi cualquier otra cosa.
fuente