Adressen-Familie-Detektor
Erkennt, ob eine Adresse IPv4, IPv6 oder ungueltig ist
Input IP Addresses
Detection Results
Detection results will appear here
Der Address Family Detector identifiziert sofort, ob ein IP-Adressstring IPv4, IPv6 oder ungültig ist. Geben Sie eine beliebige Adresse wie 192.168.1.1, 2001:db8::1 oder ::ffff:10.0.0.1 ein, um die erkannte Familie, den Validierungsstatus und eventuelle Formatprobleme zu sehen. Das Tool liefert die wesentliche Erstklassifizierung, die benötigt wird, bevor Adressen in Skripten, Anwendungen, Firewall-Regeln oder Konfigurationsdateien verarbeitet werden.
IP-Adressfamilien verstehen
Jede IP-Adresse gehört zu einer von zwei Protokollfamilien: IPv4 oder IPv6. Sie sehen völlig unterschiedlich aus, werden von verschiedenen Code-Pfaden geparst und von unterschiedlichen Protokollstapeln im Betriebssystem verarbeitet. Bevor Sie etwas Sinnvolles mit einer Adresse tun können -- sie validieren, ihren Standort nachschlagen, prüfen ob sie privat ist oder sie zu einer Firewall-Regel hinzufügen -- müssen Sie wissen, zu welcher Familie sie gehört. Das scheint offensichtlich, wenn man 192.168.1.1 mit 2001:db8::1 vergleicht, aber Grenzfälle machen die automatische Erkennung kniffliger als man erwarten würde.
Die Komplikationen entstehen durch Formate, die die Grenze zwischen den Familien verwischen. Eine IPv4-mapped IPv6-Adresse wie ::ffff:192.168.1.1 enthält etwas, das wie eine IPv4-Adresse aussieht, ist aber technisch eine 128-Bit-IPv6-Adresse. Eine IPv4-kompatible Adresse wie ::192.168.1.1 ist ebenfalls IPv6, trotz der punktierten Dezimalschreibweise am Ende. Zone-IDs wie fe80::1%eth0 fügen ein nicht-numerisches Suffix hinzu, an dem manche Parser scheitern. CIDR-Notation wie 192.168.1.0/24 enthält eine Präfixlänge, die nicht Teil der Adresse selbst ist. Und Eingaben wie 192.168.1.256 sehen aus wie IPv4, bestehen aber die Validierung nicht, weil das Oktett 255 überschreitet.
Dieser Detektor behandelt all diese Fälle. Er untersucht die Struktur und die Zeichen der Eingabe, klassifiziert sie in die richtige Familie und validiert dann die Adresse gemäß den Regeln dieser Familie. Bei ungültigen Eingaben teilt er Ihnen nicht nur mit, dass die Adresse ungültig ist, sondern auch warum -- fehlende Oktette, Werte außerhalb des Bereichs, nicht-hexadezimale Zeichen, doppelte :: -Komprimierung oder andere spezifische Probleme. Das macht ihn zu einem nützlichen Debugging-Tool, wenn Sie herausfinden wollen, warum eine Adresse, die "richtig aussieht", von einem anderen System abgelehnt wird.
So erkennen Sie, ob eine Adresse IPv4 oder IPv6 ist
- Geben Sie einen beliebigen IP-Adressstring ein (z. B.
192.168.1.1,2001:db8::1oder::ffff:10.0.0.1) - Das Tool analysiert das Format und klassifiziert es als IPv4, IPv6 oder ungültig
- Sehen Sie die erkannte Adressfamilie zusammen mit Validierungsdetails
- Bei ungültigen Eingaben sehen Sie den spezifischen Grund für den Fehler (Oktett außerhalb des Bereichs, fehlerhafte Notation usw.)
Beispiele zur Adressfamilien-Erkennung
| Eingabe | Erkannte Familie | Gültig | Hinweise |
|---|---|---|---|
192.168.1.1 | IPv4 | Ja | Standard-Dezimalschreibweise mit Punkten |
2001:db8::1 | IPv6 | Ja | Komprimierte Notation |
::ffff:192.168.1.1 | IPv6 | Ja | IPv4-mapped IPv6 |
fe80::1%eth0 | IPv6 | Ja | Link-Local mit Zone-ID |
10.0.0.1 | IPv4 | Ja | Private Adresse |
::1 | IPv6 | Ja | Loopback |
192.168.1.256 | IPv4 | Nein | Oktett überschreitet 255 |
2001:db8::xyz | IPv6 | Nein | Nicht-hexadezimales Zeichen |
hello | Keines | Nein | Keine IP-Adresse |
192.168.1 | Keines | Nein | Fehlendes Oktett |
1.2.3.4.5 | Keines | Nein | Zu viele Oktette |
2001:db8::1::2 | IPv6 | Nein | Mehrfaches :: |
Warum den Address Family Detector verwenden
- Eingabevalidierung -- Bestimmen Sie die Adressfamilie, bevor die Eingabe an IPv4-spezifische oder IPv6-spezifische Verarbeitungslogik in Skripten und Anwendungen weitergeleitet wird
- Verarbeitung gemischter Formate -- Verarbeiten Sie Adresslisten, die eine Mischung aus IPv4- und IPv6-Einträgen enthalten, indem Sie jeden Eintrag zuerst klassifizieren
- Konfigurations-Debugging -- Überprüfen Sie, ob ein String, der wie eine IP-Adresse aussieht, tatsächlich gültig ist, bevor Sie ihn zu Firewall-Regeln oder DNS-Einträgen hinzufügen
- Log-Parsing -- Klassifizieren Sie Adressen aus Log-Dateien mit verschiedenen Formaten, um die richtige Analyse-Pipeline anzuwenden
- API-Eingabebereinigung -- Lehnen Sie fehlerhafte Adressstrings am Eingangspunkt ab, bevor sie nachgelagerte Fehler verursachen
- Migrationsplanung -- Prüfen Sie Adresslisten, um die IPv4/IPv6-Mischung zu verstehen, bevor Sie Dual-Stack- oder Nur-IPv6-Bereitstellungen planen
Wie die IP-Adressfamilien-Erkennung funktioniert
Die Adressfamilien-Erkennung untersucht die Struktur und die Zeichen des Eingabestrings, um zu bestimmen, welche IP-Version er darstellt, und validiert dann das Format gemäß den Regeln dieser Version.
IPv4-Erkennungsregeln
Eine Eingabe wird als IPv4 klassifiziert, wenn sie diese Kriterien erfüllt:
- Enthält genau drei Punkte, die vier numerische Gruppen trennen
- Jede Gruppe (Oktett) ist eine Dezimalzahl zwischen
0und255 - Keine führenden Nullen in Oktetten (strikter Modus) --
010.0.0.1kann abgelehnt werden, weil010als oktales 8 interpretiert werden könnte - Keine anderen Zeichen als Ziffern und Punkte
Gültig: 192.168.1.1 10.0.0.255 0.0.0.0
Ungültig: 192.168.1.256 (Oktett > 255)
Ungültig: 192.168.1 (nur 3 Oktette)
Ungültig: 192.168.1.1.5 (5 Oktette)
IPv6-Erkennungsregeln
Eine Eingabe wird als IPv6 klassifiziert, wenn sie diese Kriterien erfüllt:
- Enthält Doppelpunkte, die hexadezimale Gruppen (Hextets) trennen
- Bis zu acht Gruppen mit jeweils 1-4 Hex-Ziffern
- Kann
::verwenden, um aufeinanderfolgende Null-Gruppen zu komprimieren (nur einmal) - Kann ein Zone-ID-Suffix enthalten (
%eth0) für Link-Local-Adressen - Kann gemischte Notation für IPv4-mapped Adressen verwenden (
::ffff:192.168.1.1)
Gültig: 2001:db8::1
Gültig: ::ffff:10.0.0.1
Gültig: fe80::1%eth0
Ungültig: 2001:db8::1::2 (doppeltes :: nicht erlaubt)
Ungültig: 2001:db8::gggg (nicht-hexadezimales Zeichen)
Grenzfälle
Mehrere Adressformate erfordern besondere Behandlung:
- IPv4-mapped IPv6 (
::ffff:192.168.1.1) -- wird als IPv6 erkannt, nicht als IPv4, da es IPv6-Notation verwendet, obwohl es eine IPv4-Adresse enthält - IPv4-kompatibles IPv6 (
::192.168.1.1) -- wird als IPv6 erkannt; dieses Format ist gemäß RFC 4291 veraltet - Zone-IDs (
fe80::1%eth0) -- das%-Suffix ist Teil der IPv6-Adressspezifikation für bereichsbezogene Adressen und sollte nicht zur Ablehnung führen - CIDR-Notation (
192.168.1.0/24) -- der/Präfix-Teil ist nicht Teil der Adresse selbst; einige Implementierungen entfernen ihn vor der Erkennung
Praktische Hinweise zur Handhabung von Adressfamilien
Beim Erstellen von Anwendungen oder Skripten, die IP-Adressen verarbeiten, ist der robusteste Ansatz, die Adressfamilie so früh wie möglich in Ihrer Pipeline zu erkennen und dann in familienspezifische Logik zu verzweigen. Der Versuch, einen einzelnen regulären Ausdruck oder Parser zu schreiben, der sowohl IPv4 als auch IPv6 korrekt behandelt, ist eine häufige Quelle subtiler Fehler. IPv6 allein hat mehrere gültige Darstellungen für dieselbe Adresse (erweitert, komprimiert, gemischte Notation), und IPv4 hat Grenzfälle mit führenden Nullen und Oktal-Interpretation. Verwenden Sie die Standardbibliothek Ihrer Programmiersprache -- Pythons ipaddress-Modul, Gos net-Paket, Javas InetAddress-Klasse -- anstatt Ihren eigenen Parser zu schreiben.
Ein besonders heimtückischer Fehler tritt auf, wenn Anwendungen IPv4-mapped IPv6-Adressen als reines IPv6 behandeln. Wenn eine Sicherheitsprüfung gegen eine IPv4-Blockliste vergleicht, die Adresse aber in gemappter Form (::ffff:10.0.0.5) präsentiert wird, schlägt der Vergleich fehl und die Blockliste wird umgangen. Ihre Erkennungslogik sollte gemappte Adressen erkennen und den IPv4-Teil für alle IPv4-spezifischen Prüfungen extrahieren. Dies ist kein akademisches Problem -- es war die Ursache realer Sicherheitslücken.
Führende Nullen in IPv4-Adressen verdienen besondere Aufmerksamkeit. Der String 010.0.0.1 sieht für einen Menschen wie 10.0.0.1 aus, aber einige Programmiersprachen und Systeme interpretieren 010 als oktales 8 und lösen die Adresse stattdessen zu 8.0.0.1 auf. Diese Diskrepanz wurde bei SSRF-Angriffen (Server-Side Request Forgery) ausgenutzt, bei denen eine Blockliste die dezimale Interpretation prüft, der HTTP-Client aber die oktale Interpretation verwendet. Eine strikte Validierung, die führende Nullen ablehnt, eliminiert diese gesamte Klasse von Schwachstellen.
Häufig gestellte Fragen
Warum wird ::ffff:192.168.1.1 als IPv6 statt als IPv4 erkannt?
Weil ::ffff:192.168.1.1 IPv6-Notation (Doppelpunkte) verwendet und eine gültige 128-Bit-IPv6-Adresse ist. Die Tatsache, dass sie eine eingebettete IPv4-Adresse enthält, ändert nicht ihre Adressfamilie. Es ist eine IPv4-mapped IPv6-Adresse, ein spezifischer Typ innerhalb der IPv6-Familie. Verwenden Sie den IPv4-Mapped IPv6 Converter, um den IPv4-Teil zu extrahieren.
Wie behandelt der Detektor führende Nullen in IPv4-Oktetten?
Im strikten Validierungsmodus können führende Nullen wie 010.0.0.1 abgelehnt werden, da einige Systeme 010 als oktal (dezimal 8) statt als dezimal 10 interpretieren. Diese Mehrdeutigkeit kann zu Sicherheitslücken führen, bei denen eine Adresse zu einem unbeabsichtigten Ziel aufgelöst wird. Der Detektor markiert dies als potenziell ungültig, um solche Probleme zu verhindern.
Kann der Detektor den spezifischen Typ innerhalb einer Familie identifizieren (privat, öffentlich, Multicast)?
Der Address Family Detector konzentriert sich auf die Familienklassifizierung (IPv4 vs. IPv6 vs. ungültig). Für eine detailliertere Typklassifizierung verwenden Sie den IPv4 Private/Public Detector oder den IPv6 Unique Local/Link-Local Detector nach Bestimmung der Familie.
Wie soll ich mit Adressen in CIDR-Notation wie 192.168.1.0/24 umgehen?
Die /24-Präfixlänge ist nicht Teil der IP-Adresse selbst -- sie beschreibt die Subnetzgröße. Die meisten Adress-Parsing-Bibliotheken entfernen das CIDR-Suffix vor der Validierung. Wenn Ihre Eingabe CIDR-Notation enthalten kann, teilen Sie zuerst am /-Zeichen auf, validieren Sie den Adressteil und behandeln Sie die Präfixlänge separat.
Was ist die häufigste Ursache für die Erkennung ungültiger Adressen?
Bei IPv4 ist das häufigste Problem ein Oktettwert über 255 (z. B. 192.168.1.300) oder eine falsche Anzahl von Oktetten. Bei IPv6 ist das häufigste Problem die mehrfache Verwendung von :: (z. B. 2001:db8::1::2) oder die Einbeziehung nicht-hexadezimaler Zeichen. Beide Typen können auch aufgrund fehlerhafter Formatierung wie nachgestellter Punkte oder Doppelpunkte ungültig sein.
Verwandte Tools
- IPv4 Validator - Validierung von IPv4-Adressen im strikten Dotted-Quad-Format
- IPv6 Validator - Validierung von IPv6-Adressen in vollständigen und komprimierten Formaten
- IPv4 Private/Public Detector - Erkennung, ob eine IPv4-Adresse privat, öffentlich oder speziell ist
- IPv6 Unique Local/Link-Local Detector - Erkennung des IPv6-Adressbereichs und -Typs
- Normalize Mixed Lists - Sortierung und Bereinigung gemischter IPv4/IPv6-Adresslisten
- Extract IPs from Text - Extraktion von IP-Adressen aus Logs oder Textausschnitten