Wie häufig wird von IP-Geräten ausgefallene IP-Berechnungen akzeptiert?

1228
Niels Basjes

Wenn wir eine IPv4-Adresse angeben, verwenden wir normalerweise alle das Muster von 1.2.3.4. Dies ist im Wesentlichen nur eine Art, eine 32-Bit-Zahl in einer für Menschen besser lesbaren Form zu schreiben.

Die IP-Adresse 1.2.3.4 kann auch als 1.2 (3 * 256 + 4) = 1.2.772 geschrieben werden

Dies bedeutet, dass Sie eine IP-Adresse mit 3 Punkten (dh übliche Praxis), 2 Punkten, 1 Punkt und überhaupt keinen Punkten haben können (dh normale 32-Bit-Ganzzahl ohne Vorzeichen, die als dezimale Ganzzahl geschrieben wird).

Mit einer solchen alternativen Schreibweise könnten Sie einige IP-Adressen noch lesbarer schreiben: 10.10.4000 entspricht 10.10.15.160

Ein Nebeneffekt ist, dass Sie, wenn dies in Kombination mit einem Webserver wie Apache verwendet wird, 4 verschiedene vhosts für eine einzige IP-Adresse definieren können, ohne eine DNS- oder hosts-Datei zu verwenden. (Versuchen Sie es zu Hause;)

Ich weiß, dass es viele GUI-basierte Tools gibt (wie die Windows-IP-Konfiguration), die einfach 4 Felder haben, die alle nur 0-255 akzeptieren. Viele Kommandozeilen-Tools (wie Ping, Curl, SSH usw.) und fast alle Webbrowser (die im Wesentlichen eine freie Adressleiste haben) können eine beliebige Form erhalten.

Jetzt ist meine Frage: Wie gut werden diese alternativen IPv4-Notationen von Werkzeugen akzeptiert / zugelassen, die wir "in the wild" haben und irgendeine Form akzeptieren?

2

4 Antworten auf die Frage

5
nik

Ich mag die Idee nicht, IP-Adressen in ganzzahligen Darstellungen zu schreiben, außer in der a.b.c.dForm, in der sich jeder der 4 Werte im Bereich 0-255 befindet (mit anderen Einschränkungen).

Andere Notationen würden einfach zu Fehlinterpretationen und mehr Fehlern in der Wildnis führen.
Ich stimme dafür, alle Werkzeuge und Anwendungen zu identifizieren, die solche Interpretationen erlauben, und sie zu korrigieren.

Irgendwann werden wir auch die IPv6-Notationen haben, mit denen wir arbeiten können . lasst die Dinge nicht durcheinander bringen.

3
Matthew Iselin

Dies funktioniert aufgrund der Funktionsweise der inet_addr-Funktion . Praktisch jeder Code einer Netzwerkanwendung verwendet dies zum Konvertieren von IP-Zeichenfolgen in ihre Ganzzahlform und unterstützt die Notation ab, abc und abcd.

Ja, man sollte davon ausgehen, dass es möglich ist, alle vier dieser Notationen für eine IP-Adresse zu verwenden.

Die Beschreibung der inet_addr-Funktion beschreibt das beobachtete Verhalten tatsächlich als "von Entwurf". Das wollte ich wissen. Niels Basjes vor 15 Jahren 0
2
Seth

Die Standortleiste von Chrome vervollständigt gepunktete IPs automatisch und zeigt das Ergebnis beim Tippen an. Dh http: //10.1 -> http://10.0.0.1, http: //10.2.4 -> http://10.2.0.4 usw.

1
Josip Medved

Wenn Sie über ein .NET-Programm stolpern, das die IP-Adresse liest, können Sie sich darauf verlassen, dass es auch die Dezimaldarstellung unterstützt. Die meisten Parser in Programmiersprachen, die ich verwendet habe, verhalten sich genauso.

Leider verwenden einige von ihnen RegEx, um zu prüfen, ob eine punktierte Syntax eingegeben wird, wenn Sie dies über die Benutzeroberfläche versuchen. Sie können es zwar analysieren, entscheiden sich jedoch nicht dafür.

Beachten Sie jedoch, dass die gepunktete Syntax viel besser lesbar ist als die dezimale Darstellung.