[Python-de] RegulärerAusdrücke

René Liebscher R.Liebscher at gmx.de
Mit Jan 7 11:34:24 CET 2004


"Stefan J. Betz" schrieb:
> 
> Am Sat, Jan 03, 2004 um 17:01:56 CET, Stefan Schwarzer schrieb:
> > Ich habe noch eine Anmerkung. Der "richtige" reguläre Ausdruck lässt
> > immer noch unsinnige IPs zu, z. B. 192.168.327.999 (die einzelnen
> > Bestandteile dürfen nur zwischen 0 und 255 liegen).
> 
> Das ist mir klar, das ist allerdings ein Problem das mir auch erst jetzt
> eingefallen ist :-(
> 
...
> 
> Sowas in der Art wäre auch ne Lösung, vor allem weil die Funktion ja eh
> nur 1x aufgerufen wird (beim Programmstart), von daher wäre dieses
> Konstrukt sicherlich sinnvoll...
> 
> > Eine andere Möglichkeit ist, den Regex mit Gruppen zu verwenden und
> > die einzelnen Bestandteile zu untersuchen:
> 
> Ich erwarte eigentlich von der Funktion nur das sie mir sagt ob der
> übertragene String ne IP ist, mehr net, mit der obigen Funktion kann ich
> sie dann sogar noch einigermaßen auf gültigkeit Prüfen lassen...
> 

Wenn es nur einmal beim Programmstart aufgerufen wird (als
Kommandozeilenparameter übergeben?), fällt mir noch die Variante ein,
aus dem Modul socket die Funktion gethostbyname(hostname) zu benutzen.
Die sollte bei ungültiger IP-Adresse eine Exception liefern (und als
Nebeneffekt auch  normale Rechnernamen akzeptieren.)

http://www.python.org/doc/current/lib/module-socket.html

MfG
Rene Liebscher