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


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

Welche, wenn in Chrom, Vorschau auf die URL http://69.172.200.235/, die weiterleitet (durch externen Server Response Code 3XX) zu www.test.com, aber das ist außerhalb des Rahmens dessen, was ich herausfinden möchte.

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


31
2018-03-01 20:05


Ursprung


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
@wjandrea Ich vermute, Chrome interpretiert sie als Subdomains und ignoriert sie nicht wirklich. Sie können dies überprüfen, indem Sie den Host-Header der Anfrage anzeigen, die chrome sendet. - Christoph
Bit einer Tangente, aber Google Mail Adressen ermöglichen es Ihnen, so viele Punkte hinzuzufügen, wie Sie wollen, ohne Probleme zu verursachen, und auch ein + mit dem Text, den Sie möchten. So abcd@gmail.com wird auch E-Mails erhalten, die an gesendet werden a.b.c.d@gmail.com oder abcd+junkmail@gmail.com - und ein Vorteil besteht darin, verschiedene E-Mails an verschiedene Websites zu senden, um zu sehen, wer Sie in die Spam-Listen einbindet, oder um Regeln für eingehende E-Mails zu definieren, je nach "An" -Adresse. (Mehr) Oder, kylesmom@gmail.com ist jetzt kylesmom + is.a.big.fa ... - ashleedawg
Was es wert ist, erlaubt die Kombination von Firefox und Tintenfisch nicht; Firefox übergibt die Punkte wortwörtlich, und Tintenfehler, weil es ein ungültiges URL-Format ist. Das scheint also ein Chrome-Bug zu sein, oder vielleicht ist die Spezifikation bezüglich leerer Domains mehrdeutig? - Paul Gear


Antworten:


Chrome interpretiert die Zahl 1168951531 als Dezimalzahl, die in Hexadezimalformat 45ACC8EB ist. 45ACC8EB in hex ist das gleiche wie die Dezimalstelle 69.172.200.235, wenn Sie jedes Hexadezimalziffernpaar als eine Dezimalzahl verwenden.

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

Kurze Antwort: Es ist die reine dezimale Darstellung der gleichen IP-Adresse.


44
2018-03-01 20:54



Firefox macht auch die Interpretation (ohne die Punkte), aber nicht Edge. - JAB
Der typische Quellcode zum Auflösen eines Hostnamens besteht darin, zuerst zu prüfen, ob es sich um eine IP-Adresse handelt (z. B. mit inet_addr()) und wenn nicht, übergebe es an eine Funktion wie gethostname() das fragt die DNS - Server (und liest die hosts Datei). Die Angabe einer dezimalen Darstellung der IP-Adresse, wie in der obigen Antwort erläutert, ist in den meisten Implementierungen vollkommen legal. ich kann tippen ping 1168951531 in einem Terminal, und es pingt tatsächlich die beabsichtigte Adresse. Es wird komischer mit allen Punkten auf der Vorderseite, aber möglicherweise entfernt Chrome sie, bevor die Auflösung versucht wird. - Ale
Es ist erwähnenswert, dass sowohl Chrome als auch Firefox die URL ohne Punkte akzeptieren. (http://1168951531) - Steven M. Vascellaro


Dies ist eine lange Darstellung einer IPv4-Adresse der IP 69.172.200.235. Welche Karten zu www.test.com Domain.


3
2018-03-01 20:52



Kannst du erklären, was eine "lange Darstellung" ist? - Philipp
Es wird besser durch die andere Antwort erklärt, aber es läuft immer noch auf dasselbe hinaus. - Gothrek
Sollte wahrscheinlich sein "long Darstellung" - n0rd