it-swarm.com.de

Ist 0.0.0.0 eine gültige IP-Adresse?

Ist 0.0.0.0 eine gültige IP-Adresse? Ich möchte, dass mein Programm dies als Hinweis darauf speichert, dass keine Adresse verwendet wird, aber dies funktioniert nicht, wenn es tatsächlich gültig ist.

53
Vishnuprakash

Es ist gültig , da es vier Oktette enthält, die jeweils im Bereich von 0 bis einschließlich 255 liegen. Es ist jedoch nicht als echte IP-Adresse verwendbar .

RFC17 (ein) besagt, dass 0.0.0.0/8 (0.<anything>.<anything>.<anything>) ist nur als Quelladresse reserviert. Es kann vorkommen, dass Sie über diese Adresse verfügen. Dies liegt jedoch normalerweise daran, dass Ihnen keine Adresse zugewiesen wurde (z. B. über DHCP).

Siehe auch Wikipedia-Eintrag zu IPv4 .


(ein) Obwohl dieser RFC jetzt als veraltet betrachtet wird, ist er in Bezug auf das angegebene Verhalten immer noch korrekt. Sein Ersatz https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml hat immer noch den gleichen Text, der die Verwendung von 0.0 detailliert .0.0 Adresse.

47
paxdiablo

Ja, es ist eine IP-Adresse aber es ist reserviert.

0.0.0.0/8 - Adressen in diesem Block beziehen sich auf Quellhosts in "diesem" Netzwerk. Die Adresse 0.0.0.0/32 kann als Quelladresse für diesen Host in diesem Netzwerk verwendet werden. Andere Adressen innerhalb von 0.0.0.0/8 können verwendet werden, um auf bestimmte Hosts in diesem Netzwerk zu verweisen

7

Das 0.0.0.0 wird zum Binden aller IPv4-Schnittstellen verwendet. Es ist also ein besonderer Wert wie 127.0.0.1.

7
Novikov

Schauen wir uns die Frage an, die hier vom OP gestellt wird.

Ist 0.0.0.0 eine gültige IP-Adresse?

Ja. Dies ist technisch gesehen eine gültige IP-Adresse, und die anderen Antworten beschreiben viele verschiedene Verwendungen davon (ich werde hier keine Links veröffentlichen wikipedia oder vielleicht bin ich es).

Daher glaube ich, dass die Antwort von paxdiablo am zutreffendsten ist, aber lassen Sie uns auch den Kontext Ihrer Frage betrachten.

Ich möchte, dass mein Programm dies als Hinweis darauf speichert, dass keine Adresse verwendet wird, aber dies funktioniert nicht, wenn es tatsächlich gültig ist.

Dies hängt ganz von Ihrem Anwendungsfall ab. Da dies ein Programmiererforum ist, betrachten wir diese Perspektive.

Wenn Ihre Software tatsächliche Internetadressen speichert - Serverstandorte, Besucher Ihrer Website, Replikations-/Spiegel- oder Sicherungssites, Webservices oder Datenbankserver usw. - ist dies vollkommen gültig. Keiner Maschine im Internet wird jemals diese Adresse zugewiesen oder eine gültige Verbindung hergestellt.

Wenn Sie andererseits eine Firewall- oder Router-Firmware schreiben, hat diese Adresse eine besondere Bedeutung. Standardroute: Akzeptieren Sie eine beliebige IP-Quelle/ein beliebiges IP-Ziel, blockieren Sie alle IP-Quellen/IP-Ziele, lassen Sie sich von allen anderen auffangen. Lassen Sie mich jedoch darauf hinweisen, dass Sie, wenn Sie auf dieser Ebene codieren, die Netzwerkprotokolle gut genug verstehen sollten, um diese Frage nicht erst stellen zu müssen.

Ich gehe daher davon aus, dass die meisten Leute, die diese Frage betrachten, in die erste Kategorie fallen und schlage vor, dass dies eine absolut gültige Methode zum Speichern einer leeren, leeren oder fehlenden IP-Adresse ist, falls vorhanden Aus irgendeinem Grund kann ein tatsächlicher null Wert nicht verwendet werden. Selbst wenn Sie die Validierungsprüfung vernachlässigen und Ihre Software versucht, eine Verbindung zu dieser IP-Adresse herzustellen, kann sie einfach keine Verbindung herstellen.

6
Hearth

Es ist als Standardroute Adresse reserviert.

Es ist üblich, dies über ipconfig zu sehen, wenn Ihnen keine Adresse zugewiesen wurde.

3
Rob

Wie andere Antworten bereits ausgeführt haben, ist 0.0.0.0 eine legale und für bestimmte Zwecke gültige IP-Adresse.

Wenn alle Werte in einem Bereich zulässige Werte sind, müssen alle zu definierenden Flag-Elemente von einer anderen Stelle stammen. Andernfalls überladen Sie einen legalen Wert mit der Bedeutung eines Flags, und wenn Sie den überladenen Wert verwenden, kann nicht zu 100% festgestellt werden, ob der legale Wert oder die Bedeutung des Flags beabsichtigt war. Dies führt zu Fehlern, die mit einem Re-Faktor behoben werden müssen, der ein teures Unterfangen sein kann.

Das Überladen legaler Werte geschieht ständig. IP-Adressen und MAC-Adressen (ja, 00: 00: 00: 00: 00: 00 sind legal und werden zugewiesen) gehören zu den häufigsten Opfern.

Zufälligerweise arbeite ich gerade an einem System (nicht Ethernet/IP-basiert), bei dem die Länge eines Frames auf ca. 40 Byte begrenzt ist. Da ein Byte Längen von 0 bis 255 Byte darstellen kann und die maximale Länge 40 Byte beträgt, kann ich einige der nicht verwendeten, auch nicht zulässigen Werte (252 bis 255) verwenden, um Flag-Elemente darzustellen. Diese In-Band-Flags sind in Ordnung, da keine Überlastung auftritt.

1
studog

Sie können es in Ihrer Anwendung verwenden, um anzuzeigen, dass es keine IP-Adresse hat. Microsoft verwendet auch 0.0.0.0, wenn der Computer keine IP-Adresse hat.

die oben erwähnten "gültigen" Szenarien hängen von den spezifischen Szenarien ab, in denen sie nichts mit Ihrer Anwendung zu tun haben.

1
Martin

in jeder Hinsicht ja. Jede der vier durch einen Punkt getrennten Zahlen hat einen Wert zwischen 0 und 255, daher ist 0.0.0.0 technisch gültig.

Ich glaube nicht, dass es irgendjemanden auf der Welt geben würde, der diese IP tatsächlich hat.

BEARBEITEN: Okay, es ist für die Standardroute reserviert, aber es ist immer noch gültig.

0

Das Durchführen einer Netzwerk-Whois-Abfrage kann auch zu einer Ausgabe führen, die sehr hilfreich ist.
Beispiel:
http://whois.arin.net/rest/nets;q=0.0.0.0?showDetails=true

Anmerkung: Die Adresse 0.0.0.0 darf nur als Adresse eines ausgehenden Pakets verwendet werden, wenn ein Computer erfährt, welche IP-Adresse er verwenden soll. Es wird niemals als Zieladresse verwendet. Adressen, die mit "0" beginnen werden manchmal für Broadcasts an direkt angeschlossene Geräte verwendet.

0
Peter B

natürlich ist es das. Es ist jedoch nicht für einen einzelnen Host in einem Netzwerk gültig. Es befindet sich im Sendebereich für das lokale Netzwerk. Lesen Sie hier: http://tools.ietf.org/html/rfc17

0
The Surrican