Gregory P. Smith <[email protected]> added the comment:
> Consider applications that need to validate addresses (or networks,
> but not both) supplied as user input:
>
> address = ipaddr.IP(input)
>
> if isinstance(address, ipaddr.IPv4):
> if address.prefixlen != 32:
> raise TypeError("Expecting IP address, not network")
> elif isinstance(address, ipaddr.IPv6):
> if address.prefixlen != 128:
> raise TypeError("Expecting IP address, not network")
Support for this can be added (its too late for Python 3.1). User
input validation is a good use case. For now I suggest the simpler
code:
if '/' in input:
raise TypeError("Expecting IP address")
address = ipaddr.IP(input)
Or for a more pedantic test prior to calling ipaddr.IP.
if re.match('^[0-9a-fA-F:.]+$', input):
raise TypeError("Invalid characters in IP address")
Please file a feature request on bugs.python.org for this one if you
haven't already. We could add optional parameter(s) to ipaddr.IP to
enable only accepting host addresses or network addresses in the
future.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue3959>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com