Warum wird diese URL mit übermäßigen vorangestellten Punkten in eine IP-Adresse aufgelöst?


31

http://.................1168951531

Was, wenn es in Chrome eingefügt wird, eine Vorschau auf die URL darstellt http://69.172.200.235/, zu der umgeleitet wird (über den Antwortcode eines externen Servers 3XX) www.test.com, aber das liegt außerhalb des Rahmens dessen, was ich herauszufinden versuche.

Wie wird eine so seltsame URL wie oben in eine IP-Adresse aufgelöst? Ist das eine Formatierungsregel?


2
Beachten Sie, dass die gleiche URL ohne die Punkte auch in Chrome funktioniert: http://1168951531. Aber das wirft die Frage auf, warum Chrome die Punkte ignoriert.
wjandrea

6
@wjandrea Ich denke, Chrome interpretiert sie als Subdomains und ignoriert sie nicht wirklich. Sie können dies überprüfen, indem Sie den Host-Header der von Chrome gesendeten Anfrage anzeigen.
Christoph

1
Eine kleine Tangente, aber mit Google Mail- Adressen können Sie so viele Punkte hinzufügen, wie Sie möchten, ohne Probleme zu verursachen. So abcd@gmail.comerhalten Sie auch E-Mails, die an a.b.c.d@gmail.comoder gesendet werden abcd+junkmail@gmail.com- und ein Vorteil besteht darin, dass Sie verschiedenen Websites unterschiedliche E- Mails senden, um zu sehen, wer Sie auf die Spam-Listen setzt, oder je nach "An" -Adresse Regeln für die unterschiedliche Behandlung eingehender E-Mails einrichten. ( Mehr ) Oder kylesmom@gmail.com ist jetzt kylesmom + is.a.big.fa ...
ashleedawg

Für das, was es wert ist, erlaubt die Kombination von Firefox und Tintenfisch dies nicht; Firefox übergibt die Punkte wörtlich und Tintenfischfehler, da es sich um ein ungültiges URL-Format handelt. Das scheint also ein Chrome-Fehler zu sein, oder ist die Spezifikation für leere Domains möglicherweise nicht eindeutig?
Paul Gear

Antworten:


44

Chrome interpretiert die Nummer 1168951531 als Dezimalzahl, die bei hexadezimaler Darstellung 45ACC8EB beträgt. 45ACC8EB in hex ist das Gleiche wie die gepunktete Dezimalstelle 69.172.200.235, wenn Sie jedes Hexadezimalstellenpaar als eine Dezimalzahl verwenden.

45 -> 69
AC -> 172
C8 -> 200
EB -> 235

Kurze Antwort: Es ist die reine Dezimaldarstellung derselben IP-Adresse.


4
Firefox interpretiert auch (ohne Punkte), jedoch nicht Edge.
JAB

11
Der typische Quellcode zum Auflösen eines Hostnamens besteht darin, zunächst zu überprüfen, ob es sich um eine IP-Adresse handelt (z. B. mit inet_addr()). Wenn dies nicht der Fall ist , übergeben Sie diese an eine Funktion gethostname(), die die DNS-Server abfragt (und die hostsDatei liest ). Das Übergeben einer dezimalen Darstellung der IP-Adresse, wie in der obigen Antwort erläutert, ist in den meisten Implementierungen völlig legal. Ich kann ping 1168951531ein Terminal eingeben, und es pingt tatsächlich die beabsichtigte Adresse. Es wird seltsamer mit allen Punkten vor, aber möglicherweise entfernt Chrome sie, bevor Sie versuchen, die Lösung zu finden.
Ale

1
Es ist erwähnenswert, dass sowohl Chrome als auch Firefox die URL ohne Punkte akzeptieren. ( http://1168951531)
Stevoisiak

3

Dies ist eine lange Darstellung einer IPv4-Adresse der IP 69.172.200.235. Welches der Domain www.test.com zuordnet.


4
Können Sie erklären, was eine "lange Darstellung" ist?
Philipp

2
Es wird besser durch die andere Antwort erklärt, aber es läuft immer noch auf dasselbe hinaus.
Gothrek

9
Sollte wahrscheinlich " longDarstellung" sein
Nr. 03.03.18
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.