Muster ip adresse

| 0

Es sollte niemals Nicht-IP-Adressen erkennen. Der Ausdruck könnte komplexer sein, um mehr Dinge zu überprüfen, aber dies sollte in den meisten Fällen funktionieren. Es entspricht nicht einem vorherigen 0, da 010.1.12.1 keine übliche Möglichkeit zum Schreiben von IP-Adressen ist. Ich denke, viele Leute, die diesen Beitrag lesen, werden nach einfacheren regulären Ausdrücken suchen, auch wenn sie mit einigen technisch ungültigen IP-Adressen übereinstimmen. (Und, wie an anderer Stelle erwähnt, regex ist wahrscheinlich nicht das richtige Werkzeug, um eine IP-Adresse richtig zu validieren.) Diese IPv4-Adressen werden von der oben genannten RegEx validiert. Einfacher Regex, der die vier Teile der IP-Adresse erfasst: Der obige Regex ermöglicht eine führende Null für die Zahlen 10 bis 99 und bis zu zwei führende Nullen für die Zahlen 0 bis 9. Streng genommen implizieren IP-Adressen mit führenden Nullen oktale Notation. Sie können also führende Nullen nicht zulassen. Dies erfordert einen etwas längeren Regex: Also, wie Sie normalerweise sehen können, ist dies das Muster für die IP-Adressen. Ich hoffe, es hilft, den regulären Ausdruck ein wenig zu verstehen. :p Vorausgesetzt, dass jemand anderes nach der Validierung von “Internet-IP-Adressen ohne die allgemeinen privaten Adressen” Sucht nach DEM Extrahieren von IP-Adressen aus längerem Text erfolgt: Ich war auf der Suche nach etwas Ähnlichem für IPv4-Adressen – ein Regex, der auch die Validierung häufig verwendeter privater IP-Adressen verhinderte (192.168.x.y, 10.x.y.z, 172.16.x.y) so verwendet negative Blick voraus, um dies zu erreichen: Wenn Sie Benutzereingaben überprüfen möchten, indem Sie sicherstellen, dass eine Zeichenfolge aus nichts als einer IP-Adresse besteht, dann müssen Sie die Wortgrenzen durch Start-of-String- und End-of-String-Anker ersetzen.

Sie können die dedizierten Anker A und Z verwenden, wenn Ihre Regex-Variante sie unterstützt: Die obigen Regexe verwenden Wortgrenzen, um sicherzustellen, dass die erste und letzte Zahl in der IP-Adresse nicht Teil einer längeren Folge alphanumerischer Zeichen sind. Diese Regexe eignen sich zum Suchen von IP-Adressen in längeren Zeichenfolgen. Ich verwende egrep “([0-9] .) {3} [0-9] /etc/hosts, um IP-Adressen am Anfang einer Zeile abzugleichen. Es kann auch ohne das verwendet werden, um Leerzeichen oder andere Zeichen vor der IP-Adresse zuzulassen. Um dem IPv4-Adressformat zu entsprechen, müssen Sie dreimal nach Zahlen [0-9] suchen, {3} durch Punkte getrennt. und endet mit einer anderen Zahl. Wenn weder ein Zeichen am Anfang der IP-Adresse noch am Ende gewünscht wird, sollten die Metazeichen , bzw. die Metazeichen verwendet werden. Es folgen die Regeln, die die gültigen Kombinationen in jeder Nummer einer IP-Adresse definieren: Die Verwendung dieses regulären Ausdrucks ist jetzt 192.168.100.009 keine gültige ipv4-Adresse, während 192.168.100.9 in Ordnung ist. Die einzige andere Möglichkeit, 4 Erfassungsgruppen zu haben, besteht darin, das Muster viermal zu wiederholen: [[ $ip == [0-9](“|[ 0-9]))(“”|[ 0-9]).

[0-9](“|[ 0-9]))(“”|[ 0-9]). [0-9](“|[ 0-9]))(“”|[ 0-9]). [0-9](“|[ 0-9]))(“”|[ 0-9]) ]] && echo OK || echo NOK Die oben genannten können geändert werden, um die bereitgestellte IP nach dem gewünschten Muster zu “filtern”.