Skip to content

ipaddress

Functions to create and manipulate IPv4 and IPv6 addresses and networks.

import ipaddress

Functions

ipaddress.ip_address(address: str) -> object

Parses a string as an IPv4 or IPv6 address.

ipaddress.ip_network(address: str, strict: bool = True) -> object

Parses a string as an IPv4 or IPv6 network.

ipaddress.ip_interface(address: str) -> object

Parses a string as an IPv4 or IPv6 interface.

ipaddress.collapse_addresses(addresses: list[object]) -> list[object]

Collapses addresses and networks into the smallest set of CIDR blocks.

ipaddress.summarize_address_range(first: object, last: object) -> list[object]

Summarizes an address range as the smallest set of CIDR blocks.

IPv4Address

Represents an IPv4 address.

Properties

Name Type Description
version int Gets the IP version number.
max_prefixlen int Gets the maximum prefix length for IPv4 addresses.
is_private bool Gets whether the address is in a private-use range.
is_loopback bool Gets whether the address is a loopback address.
is_reserved bool Gets whether the address is in a reserved range.
is_global bool Gets whether the address is globally reachable.
is_unspecified bool Gets whether the address is the unspecified address.
compressed str Gets the canonical string form of the address.

to_int() -> long

Returns the integer value of the address.

IPv4Network

Represents an IPv4 network.

Properties

Name Type Description
version int Gets the IP version number.
prefixlen int Gets the network prefix length.
max_prefixlen int Gets the maximum prefix length for IPv4 networks.
network_address IPv4Address Gets the network address.
num_addresses long Gets the number of addresses in the network.
is_loopback bool Gets whether the network is a loopback network.
is_multicast bool Gets whether the network is a multicast network.
is_link_local bool Gets whether the network is link-local.
with_prefixlen str Gets the network in address/prefix notation.
with_netmask str Gets the network in address/netmask notation.
with_hostmask str Gets the network in address/hostmask notation.

hosts() -> Iterable[IPv4Address]

Iterates over usable host addresses in the network.

contains(address: IPv4Address) -> bool

Determines whether the network contains the specified address.

overlaps(other: IPv4Network) -> bool

Determines whether this network overlaps another network.

subnets(prefixlen_diff: int = 1, new_prefix: int | None = None) -> list[IPv4Network]

Splits the network into subnets.

supernet(prefixlen_diff: int = 1, new_prefix: int | None = None) -> IPv4Network

Returns the containing supernet.

subnet_of(other: IPv4Network) -> bool

Determines whether this network is a subnet of another network.

supernet_of(other: IPv4Network) -> bool

Determines whether this network is a supernet of another network.

IPv6Address

Represents an IPv6 address.

Properties

Name Type Description
version int Gets the IP version number.
max_prefixlen int Gets the maximum prefix length for IPv6 addresses.
is_private bool Gets whether the address is in a private-use range.
is_loopback bool Gets whether the address is a loopback address.
is_multicast bool Gets whether the address is a multicast address.
is_link_local bool Gets whether the address is link-local.
is_site_local bool Gets whether the address is site-local.
is_unspecified bool Gets whether the address is the unspecified address.
is_global bool Gets whether the address is globally reachable.
packed Bytes Gets the packed binary representation of the address.
compressed str Gets the compressed string form of the address.

to_int() -> BigInteger

Returns the integer value of the address.

IPv6Network

Represents an IPv6 network.

Properties

Name Type Description
version int Gets the IP version number.
prefixlen int Gets the network prefix length.
max_prefixlen int Gets the maximum prefix length for IPv6 networks.
network_address IPv6Address Gets the network address.
is_global bool Gets whether the network is globally reachable.
is_loopback bool Gets whether the network is a loopback network.
is_multicast bool Gets whether the network is a multicast network.
is_reserved bool Gets whether the network is in a reserved range.
is_link_local bool Gets whether the network is link-local.
with_prefixlen str Gets the network in address/prefix notation.
with_netmask str Gets the network in address/netmask notation.
with_hostmask str Gets the network in address/hostmask notation.

contains(address: IPv6Address) -> bool

Determines whether the network contains the specified address.

overlaps(other: IPv6Network) -> bool

Determines whether this network overlaps another network.

hosts() -> Iterable[IPv6Address]

Iterates over usable host addresses in the network.

subnets(prefixlen_diff: int = 1, new_prefix: int | None = None) -> list[IPv6Network]

Splits the network into subnets.

supernet(prefixlen_diff: int = 1, new_prefix: int | None = None) -> IPv6Network

Returns the containing supernet.

subnet_of(other: IPv6Network) -> bool

Determines whether this network is a subnet of another network.

supernet_of(other: IPv6Network) -> bool

Determines whether this network is a supernet of another network.

IPv4Interface

Represents an IPv4 interface with an address and network.

Properties

Name Type Description
ip IPv4Address Gets the interface address.
network IPv4Network Gets the associated network.
version int Gets the IP version number.
prefixlen int Gets the interface prefix length.
with_prefixlen str Gets the interface in address/prefix notation.
with_netmask str Gets the interface in address/netmask notation.
with_hostmask str Gets the interface in address/hostmask notation.

IPv6Interface

Represents an IPv4 interface with an address and network.

Properties

Name Type Description
ip IPv6Address Gets the interface address.
network IPv6Network Gets the associated network.
version int Gets the IP version number.
prefixlen int Gets the interface prefix length.
with_prefixlen str Gets the interface in address/prefix notation.
with_netmask str Gets the interface in address/netmask notation.