Fredrik Lundh wrote: > Sbaush wrote: > > > My app has in input an ip address in IPv4 notation. > > is there a function that control if input is a string in IPv4 notation? > > here's one way to do it:
Here's a function from the 'validate' module that comes with ConfigObj : def dottedQuadToNum(ip): """ Convert decimal dotted quad string to long integer >>> dottedQuadToNum('1 ') 1L >>> dottedQuadToNum(' 1.2') 16777218L >>> dottedQuadToNum(' 1.2.3 ') 16908291L >>> dottedQuadToNum('1.2.3.4') 16909060L >>> dottedQuadToNum('1.2.3. 4') Traceback (most recent call last): ValueError: Not a good dotted-quad IP: 1.2.3. 4 >>> dottedQuadToNum('255.255.255.255') 4294967295L >>> dottedQuadToNum('255.255.255.256') Traceback (most recent call last): ValueError: Not a good dotted-quad IP: 255.255.255.256 """ # import here to avoid it when ip_addr values are not used import socket, struct try: return struct.unpack('!L', socket.inet_aton(ip.strip()))[0] except socket.error: # bug in inet_aton, corrected in Python 2.3 if ip.strip() == '255.255.255.255': return 0xFFFFFFFFL else: raise ValueError('Not a good dotted-quad IP: %s' % ip) return All the best, Fuzzyman http://www.voidspace.org.uk/python/index.shtml -- http://mail.python.org/mailman/listinfo/python-list