Python 3.3+'s ipaddress for Python 2.6, 2.7, 3.2.
Note that as in Python 3.3+ you must use character strings and not byte strings for textual IP address representations:
>>> from __future__ import unicode_literals >>> ipaddress.ip_address('188.8.131.52') IPv4Address(u'184.108.40.206')
>>> ipaddress.ip_address(u'220.127.116.11') IPv4Address(u'18.104.22.168')
>>> ipaddress.ip_address(b'22.214.171.124') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "ipaddress.py", line 163, in ip_address ' a unicode object?' % address) ipaddress.AddressValueError: '126.96.36.199' does not appear to be an IPv4 or IPv6 address. Did you pass in a bytes (str in Python 2) instead of a unicode object?