Seite 1 von 1
Prüfen, ob IPv4 Adresse valide ist (bzw. ihre Syntax)
Verfasst: Mittwoch 13. Mai 2009, 17:18
von the-wiz
Ok, der Titel ist selbsterklärend. Ob sie online ist, soll natürlich nicht geprüft werden.
http://ipcheck.sourceforge.net/ habe ich schon gefunden, aber 5000 Zeilen nur für so ein Furz? Ich hoffe ihr wisst da nen Geheimtipp

Verfasst: Mittwoch 13. Mai 2009, 17:34
von BlackJack
Ähm, `ipcheck.py` ist nicht dazu da um IP-Darstellungen auf syntaktische Korrektheit zu prüfen. Kann sein, dass das Programm das irgenwo auch macht, aber der Zweck ist ein anderer.
Ansonsten musst Du Dir einfach klar werden welche Darstellungen von IPv4-Adressen Du überprüfen möchtest, wie die aufgebaut sind, und dann halt Code schreiben, der die Überprüfung macht. Für die einfachen, üblichen Fälle ist das nun echt nicht besonders schwer.
Verfasst: Mittwoch 13. Mai 2009, 17:45
von the-wiz
Hier habe ich etwas gefunden:
http://www.phpforum.de/forum/showthread.php?t=183189
Ich glaube
reicht mir
Verfasst: Mittwoch 13. Mai 2009, 17:55
von OverNord
Das kann man aber auch schöner und kürzer schreiben
Verfasst: Mittwoch 13. Mai 2009, 18:04
von BlackJack
Wobei das auch '999.999.999.999' als IP-Adresse anerkennen würde.
Verfasst: Mittwoch 13. Mai 2009, 18:36
von the-wiz
BlackJack hat geschrieben:Wobei das auch '999.999.999.999' als IP-Adresse anerkennen würde.
Ich glaube das würde nicht viel ausmachen...
Verfasst: Mittwoch 13. Mai 2009, 19:06
von sma
Ich biete folgende Variante, die ohne reguläre Ausdrücke auskommt und sicherstellt, dass die 4 Zahlen zwischen 0 und 255 liegen:
Code: Alles auswählen
def valid_ip(s):
try: return len([chr(int(i)) for i in s.split(".")]) == 4
except: return False
Stefan
Verfasst: Mittwoch 13. Mai 2009, 23:39
von birkenfeld
Man kann sich das Leben natürlich auch einfacher ohne RE machen:
Code: Alles auswählen
import socket
def valid_ip(s):
try: return bool(socket.inet_aton(s))
except socket.error: return False