Welcome to the second, and final, part of blog posts showing how to use Python to work with IP addresses. In part one we learned how ipaddress library can help us when working with IP addresses. We then learned about Address and Network objects and operations we can perform on them. Here I'll present Interface object, and its methods, before moving onto module level functions. After that I'll show how we can compare and sort ipaddress objects. We'll finish our journey with the module by talking about validation and exception handling. Working with IP addresses in Python series: Working with...
Tag: tools
If you work with computer networks sooner or later you will have to learn how to efficiently work with IP addresses and networks. As you probably guessed from the title of this post, we'll be learning how to create, modify and perform operations on IP objects using Python. Having to manipulate IP objects is common enough that Python ended up with a built in library dedicated to these tasks. It's name is... you probably guessed it, the name of the module is ipaddress. That's right, all you have to do to start working with IP goodness is one line,import...
In this blog post I want to share, and talk about, Python program I wrote to solve problem of filtering out child prefixes. Contents Problem description Solution Naïve algorithm Patricia tree aka binary radix tree Python implementation Load testing Module and cli version Closing thoughts References Problem description So what exactly is the problem we're trying to solve? Imagine that you have a group of prefixes, assigned to servers, or clients, and you want to only keep prefixes that are not subnets of any other prefix. This could be because of your routing requirements or because you want to minimise...
What? Who needs regular expressions in the age of automation? I do! And maybe you need them too. Personally I think that there are times when regular expressions are the right tool for the job. They have been around for a while and they are still a very useful aid that can be used to solve many problems in the network engineering space. Need to quickly find where ACL is applied, or which config has got the specific IP in it? How about quickly audit config files for the missing configuration line? Regex to the rescue! Contents Introduction Basic syntax...
Have you ever found yourself needing to quickly sort IP addresses directly from the Linux shell? You just ran grep against all of your configs looking for IPs in some subnet, but they're all unordered, and you just wish you could pipe the output and have them sorted. I kept running into the same problem. When it got painful enough I found a website that allowed me to copy-paste and sort all of the IPs. That worked for a while but wasn't satisfying enough. Then I found a cool looking bash one-liner, with cut, sort, and other unix utilities, combined...