Skip to content

fictive-kin/subnet-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Subnet Utilities

This is a Python module for manipulating subnet information. It adds useful utilities to the built-in Python ipaddress library. It requires Python 3+ and supports both IPv4 and IPv6 subnets.

Example usage

Create a subnet object:

from subnet import ip_network, IPv4Network, IPv6Network

# The simple way takes either IPv4 or IPv6 CIDR notation
my_subnet = ip_network('10.10.0.0/16')

# The specific type way
my_ipv4_subnet = IPv4Network('10.10.0.0/16')
my_ipv6_subnet = IPv6Network('fd3e:48fe:59b2:43ca::/64')

Divide a subnet into useful chunks (as evenly as plausible):

for subnet in my_ipv4_subnet.divide(6):
    print(subnet)

for subnet in my_ipv6_subnet.divide(2):
    print(subnet)

Get a random ip from a subnet:

print(my_subnet.random_ip())

Command line usage

It is also possible to perform various tasks from the command line directly:

$ network-divide 10.0.0.0/8 4
$ network-random-ip fd3e:48fe:59b2:43ca::/64
$ network-info 192.168.0.0/24