Was sind die regulären Java-Ausdrücke für das Abgleichen von IPv4- und IPv6-Zeichenfolgen?

7

Suchen nach einer Zeichenkette, die an String übergeben werden soll (string), die mit IPv4 übereinstimmt, und eine andere, die mit IPv6 übereinstimmt.

    
Kevin Wong 05.09.2008, 16:08
quelle

5 Antworten

17
%Vor%

Bekam diese aus irgendeinem Blog. Jemand, der gut mit Regexes ist, sollte in der Lage sein, eine einzige Regex für alle IPv6-Adreßtypen zu finden. Eigentlich könnte man eine einzige Regex haben, die sowohl mit IPv4 als auch mit IPv6 übereinstimmt.

    
Kevin Wong 05.09.2008 16:13
quelle
6

Eine weitere gute Option für die Verarbeitung von IPs ist die Verwendung der Java-Klassen Inet4Address und Inet6Address , die auf verschiedene Arten nützlich sein können, Eine davon ist die Gültigkeit der IP-Adresse zu bestimmen.

Ich weiß, dass dies die Frage nicht direkt beantwortet, sondern nur gedacht hat, dass es erwähnenswert ist.

    
Yuval 31.07.2009 06:30
quelle
3

Hier ist eine Regex, die den IPv4-Adressen entspricht:

%Vor%

Sie müssen die Backslashes umgehen, wenn Sie sie in Java als Zeichenfolgenliteral angeben:

%Vor%     
hasseg 05.09.2008 16:13
quelle
0

Die Regex erlaubt die Verwendung von führenden Nullen in den IPv4-Teilen.

Einige Unix- und Mac-Distributionen konvertieren diese Segmente in Oktale.

Ich empfehle, 25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d als IPv4-Segment zu verwenden.

    
Aeron 15.10.2009 15:13
quelle
0

Regexes für ipv6 können sehr kompliziert werden, wenn Sie Adressen mit eingebetteten ipv4 und komprimierten Adressen berücksichtigen.

Die Open-Source-IPAddress-Java-Bibliothek validiert alle Standarddarstellungen von IPv6 und IPv4 und unterstützt auch Präfix-Länge (und Validierung solcher). Disclaimer: Ich bin der Projektleiter dieser Bibliothek.

Codebeispiel:

%Vor%     
Sean F 05.03.2017 07:08
quelle

Tags und Links