Ich versuche, meine Website zu pingen. Die http://www.example.com/
Auflösung erfolgt unter einer unbekannten IP-Adresse und es tritt eine Zeitüberschreitung auf.
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
aber wenn ich pinge klappt example.com
es
Was ist es, was ich hier verpasse?
ping
undgetaddrinfo()
und Freunde durch Schrägstriche gehen, nicht wussten, dass dies56 data bytes
eine übliche Standardeinstellung ist, etc .: Bitte nehmen Sie dies als Zeichen dass Sie sich bemühen, mehr über die Dinge zu lernen, bevor Sie versuchen zu helfen, wäre sehr dankbar.Antworten:
Ich versuche, meine Website http://www.example.com/ zu pingen, und es wird in eine unbekannte IP-Adresse aufgelöst und es tritt eine Zeitüberschreitung auf.
Das Argument für Ping ist ein Hostname (oder eine IP-Adresse).
Folgendes wird also funktionieren:
Auf der anderen Seite,
funktioniert nicht, da http://www.example.com/ eine HTTP- URL (Uniform Resource Locator) ist und kein gültiger Hostname (obwohl ein Teil davon ein Hostname ist).
Eine HTTP-URL besteht aus 4 Teilen:
Ping erkennt URLs normalerweise nicht als gültigen Zielhostnamen.
Anmerkungen :
Nicht alle URLs haben das oben genannte Format.
Eine vollständige URL besteht aus einem Namensschema-Bezeichner, gefolgt von einer Zeichenfolge, deren Format eine Funktion des Namensschemas ist.
Das Format einer URL ist in der IETF-Spezifikation Uniform Resource Locators (URL) definiert.
DNS-Hijacking
Eine Ausnahme von oben kann auftreten, wenn der DNS-Server (der Hostnamen in IP-Adressen auflöst) so konfiguriert ist, dass er eine gültige IP-Adresse zurückgibt, auch wenn ein ungültiger Hostname angegeben wird.
Dies kann passieren, wenn ein ISP Ihre DNS-Abfragen missbraucht.
Aus der Antwort Warum wird Ping für einen zufälligen Hostnamen, den ich eingebe, in eine IP 198.105.254.228 aufgelöst? von Michael Hampton :
quelle
Wenn Sie den Befehl ping mit einer Zeichenfolge ausführen, die keine IP-Adresse ist, muss zuerst die IP-Adresse des Hosts aufgelöst werden, den Sie anpingen möchten.
Wenn du rennst:
$ ping example.com
Der DNS-Server gibt die IP-Adresse des Servers zurück, auf dem sich die Website befindet.
Wenn Sie jedoch das Protokoll und den Pfad voranstellen, um eine standardmäßige http-URL zu erstellen, die alle zur Auflösung an den DNS-Server gesendet werden.
Anstelle des DNS-Servers, der den Eintrag dafür findet
example.com
, sucht er nach dem Eintrag,http://example.com/
der kein gültiger Hostname ist.Viele DNS-Server werden mit nichts zurückkehren. In diesem Fall tritt beim Ping-Befehl nur ein DNS-Auflösungsfehler auf.
Ihr DNS-Server gibt jedoch die IP-Adresse zurück
123.456.789.000
. Die Adresse scheint ein Vorschlagsdienst von Time Warner Cable zu sein, der Benutzern hilft, die die URL in ihrem Browser falsch eingegeben haben.Der Befehl ping nimmt dies jedoch wörtlich und geht davon aus, dass der Hostname
http://example.com/
(der kein gültiger Hostname ist) in die Adresse aufgelöst wird123.456.789.000
.Der Grund, warum der Ping-Befehl danach abläuft, ist, dass er
123.456.789.000
nicht auf ICMP-Anforderungen reagiert.quelle
Das http: // steht für Hyper Text Transfer Protocol, das Protokoll für den Zugriff auf Webseiten. Das Pingen eines Servers verwendet kein HTTP, sondern besteht aus einer ICMP-Nachricht (Internet Control Message Protocol), sodass http: // in diesem Kontext keinen Sinn ergibt.
quelle
Request timeout for icmp_seq 0
Sie können dort den ICMP sehen, dh die ICMP-Sequenz 0, 1, 2 ...Warum würdest du sowieso 'ping' benutzen? Es funktioniert nicht, wenn eine Firewall den Ping-Verkehr blockiert.
Wenn Sie einen Webserver testen möchten, ist es meiner Meinung nach besser, "Telnet" zu verwenden, dann können Sie den Host und den Port testen, den er abhören soll.
Beispiel: Um Ihren Webserver telnet www.mywebserver.com 80 auf dem leeren Bildschirm zu testen, geben Sie 'get' und dann 'enter' ein und Sie sollten einen Stapel http-Antworten vom Webserver erhalten. ( zB: HTTP / 1.1 400 Bad Request ... )
Dies sagt mir, dass nicht nur der Server "hochgefahren" ist, sondern auch Port 80 überwacht und antwortet. (Ich würde auch erwarten, dass Firewalls Port 80 zu meinem Webserver durchlassen.)
In ähnlicher Weise funktioniert 'telnet' auch zum Testen von Mailservern, FTP und so ziemlich allem anderen.
quelle