A Python library for representing and manipulating network addresses.
Provides support for:
Layer 3 addresses
- IPv4 and IPv6 addresses, subnets, masks, prefixes
- iterating, slicing, sorting, summarizing and classifying IP networks
- dealing with various ranges formats (CIDR, arbitrary ranges and globs, nmap)
- set based operations (unions, intersections etc) over IP addresses and subnets
- parsing a large variety of different formats and notations
- looking up IANA IP block information
- generating DNS reverse lookups
- supernetting and subnetting
Layer 2 addresses
- representation and manipulation MAC addresses and EUI-64 identifiers
- looking up IEEE organisational information (OUI, IAB)
- generating derived IPv6 addresses
This software is released under the liberal BSD license.
- Python 2.5.x through 3.5.x
- IPython (for netaddr interactive shell)
This library has comprehensive docstrings and a full set of project documentation (including tutorials): https://netaddr.readthedocs.io/en/latest/
netaddr requires py.test (https://pytest.org/).
To run the test suite, clone the repository and run:
python setup.py test
If any of the tests fail, please help the project’s user base by filing bug reports on the netaddr issue tracker:
Share and enjoy!