Bootstrap FreeKB - Python (Scripting) - Getting Started with ipaddress
Python (Scripting) - Getting Started with ipaddress

Updated:   |  Python (Scripting) articles

socket.gethostbyname can be used to get the primary IP address for a hostname.

import socket
print(socket.gethostbyname("server1.example.com"))

 

socket.gethostname() can be used to return the hostname of localhost so you can combine socket.gethostbyname and socket.gethostname() to get the primary IP address of localhost.

import socket
print(socket.gethostbyname(socket.gethostname()))

 

The ipaddress module can be used to do something with IP Addresses, Subnet Masks, Default Gateway, Broadcast Address, and so on.

#!/usr/bin/python3
import ipaddress
network = ipaddress.IPv4Network('10.0.0.20/255.255.255.0', strict=False)
print(f"network                   = {network}")
print(f"network.broadcast_address = {network.broadcast_address}")
print(f"network.compressed        = {network.compressed}")
print(f"network.exploded          = {network.exploded}")
print(f"network.hostmask          = {network.hostmask}")
print(f"network.max_prefixlen     = {network.max_prefixlen}")
print(f"network.is_link_local     = {network.is_link_local}")
print(f"network.is_loopback       = {network.is_loopback}")
print(f"network.is_multicast      = {network.is_multicast}")
print(f"network.is_private        = {network.is_private}")
print(f"network.is_reserved       = {network.is_reserved}")
print(f"network.is_unspecified    = {network.is_unspecified}")
print(f"network.netmask           = {network.netmask}")
print(f"network.network_address   = {network.network_address}")
print(f"network.num_addresses     = {network.num_addresses}")
print(f"network.prefixlen         = {network.prefixlen}")
print(f"network.version           = {network.version}")
print(f"network.with_hostmask     = {network.with_hostmask}")
print(f"network.with_netmask      = {network.with_netmask}")
print(f"network.with_prefixlen    = {network.with_prefixlen}")

 

Which should return the following.

network                   = 10.0.0.0/24
network.broadcast_address = 10.0.0.255
network.compressed        = 10.0.0.0/24
network.exploded          = 10.0.0.0/24
network.hostmask          = 0.0.0.255
network.max_prefixlen     = 32
network.is_link_local     = False
network.is_loopback       = False
network.is_multicast      = False
network.is_private        = True
network.is_reserved       = False
network.is_unspecified    = False
network.netmask           = 255.255.255.0
network.network_address   = 10.0.0.0
network.num_addresses     = 256
network.prefixlen         = 24
network.version           = 4
network.with_hostmask     = 10.0.0.0/0.0.0.255
network.with_netmask      = 10.0.0.0/255.255.255.0
network.with_prefixlen    = 10.0.0.0/24

 




Did you find this article helpful?

If so, consider buying me a coffee over at Buy Me A Coffee



Comments


Add a Comment


Please enter 9c0de2 in the box below so that we can be sure you are a human.