IP Address Parsing for Humans
![](https://www.socallinuxexpo.org/sites/default/files/styles/square_thumbnail/public/speakers/jathy_symmetry_bio.jpg?itok=MaayzjFu)
If you’ve been on the Internet, you almost certainly know what an IP address is. Hint: No, it’s not “Internet Position”. But it’s not that simple is it? IPv4 is widely understood, and IPv6 is scary! Network addresses are also factored into how IP addresses are used and managed. We subnet, supernet, delegate prefixes, route networks, track aggregates, assign IP addresses, and so on! How should you properly parse network addresses and IPs? What’s the difference anyhow? Which tools are best and how do I know which to choose?
Relax, I got you. In this talk I’ll cover the most popular IP addressing libraries in the Python language and some utilities out there to make your life easier.
This talk will compare ipaddress, netaddr, ipparser, and cidrize Python libraries, their pros and cons, commonalities, and the unique approaches and features for each tool. It will cover the high level of what’s “in” a network and how IP addresses are calculated and contained, how best to parse IPv6 addresses, and then compare and contrast different approaches for using these tools to get your job done.
Once you understand the basics, we will delve into the guts of how each library abstracts IP addressing. We will cover critical topics such as performance, usability, advanced featuers, and add clarity to when you might choose the one for more general purpose use-cases or another for highly-specialized applications.
Working with IP networks and IP addresses is critical to modern day networking and they aren’t going away, well, ever, so by the end of this talk you should have a good idea of how you might integrate IP address management into your automation and choosing the right tool for the job.