Gregory P. Smith <g...@krypto.org> 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 <rep...@bugs.python.org> <http://bugs.python.org/issue3959> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com