Archiv verlassen und diese Seite im Standarddesign anzeigen : Regulärer Ausdrück für IP-Adressen Check
Hallo Community,
Ich habe ein kleinen regulären ausdruck geschrieben, der die Korrektheit einer IP Adresse überprüfen soll. Leider verstehe ich nicht was falsch an diesem Ausdruck ist :-(
echo "192.168.1.1" | egrep "^(([01]?[0-9]{0,2}|2[0-4][0-9]|25[0-5])\.){3}([01]?[0-9]{1,2}|2[0-4][0-9]|25[0-5])$"
Dieser Reguläre Ausdruck funktioniert aber der obere will ich nehmen, doch finde ich dort keinen fehler :-(
grep "[0-9]\{1,3\}.\{3,3\}.[0-9]\{1,3\}"
Gruss Flo
Thomas Engelke
24.01.05, 12:47
\d{1,3}\.\d{1,3}.\d{1,3}.\d{1,3}
TME
Edit: Ups, nicht richtig gelesen, ich dachte, es ging um die Korrektur der unteren RegEx.
Hi,
ich hab mal gebastelt und für das erste Byte folgenden Ausdruck getest
^(([01]?[0-9]{0,2})|(2(5[0-5])|([0-4][0-9]))|[0-9]{1,2})\.
Das heisst, er matched für "0." bis "255.". Die "0." am Anfang sollte man vielleicht noch verhindern?
Ansonsten müßte es klappen, wenn man diesen Ausdruck im Prinzip 4 mal verwendet (das letzt Mal ohne ".")
Ich glaube Dein Ausdruck berücksichtigt nicht "normale" ein oder zweistellige Zahlen [0-9]{1,2}!?
Grüße
danke für deine Antwort, mein Ausdruck berücksichtitg meiner Meinung alle Ausdrücke, er erkennt ausser 0.0.0.0 alles gültige IP Adressen.
Ich verstehe aber nicht wieso dies mit der IP bsp: 192.168.1.1 nicht klappt..., bug?!
Ich würde es gut finden wenn jemand mein regulärer Ausdruck in Zeile 1 korriegieren könnte.
Thx. & gruss
Flo
Also ich glaube, dass Du schlicht noch Klammern brauchst um die Ausdrücke, die mit "oder" verknüpft werden :
^(([01]?[0-9]{0,2}|2[0-4][0-9]|25[0-5])\.)...
^((([01]?[0-9]{0,2})|(2[0-4][0-9])|(25[0-5]))\.)
sonst beziehzt sich das oder nur auf den letzten Teil-Term
Ich glaube aber trotzdem, dass Zahlen 20-99 und 2-9 nicht matchen.
Anyway.
Good luck.
Habe mein gscript umgeschrieben und bin mit dem Resultat sehr zufrieden:
#!/bin/bash
IPCHECK=$1
set `echo $IPCHECK | sed 's/\./ /g'`
if [ "$1" -ge 1 -a "$1" -le 254 ] &&
[ "$2" -ge 0 -a "$2" -le 255 ] &&
[ "$3" -ge 0 -a "$3" -le 255 ] &&
[ "$4" -ge 1 -a "$4" -le 254 ]
then
echo "Valid IP-Adress"
fi
copyleft by Florian.K
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.