ipaddress¶
New in version python: 3.3
import ipaddress
net = ipaddress.ip_network('10.9.0.0/24')
for i, ip in zip(range(3), net):
print(ip)
# '10.9.0.0'
# '10.9.0.1'
# '10.9.0.2'
net4 = ipaddress.ip_network('10.9.0.0/24')
adr4_1 = ipaddress.ip_address('10.9.0.6')
adr4_2 = ipaddress.ip_address('10.7.0.6')
adr4_1 in net4
# True
adr4_2 in net4
# False
net6 = ipaddress.ip_network('fdfd:87b5:b475:5e3e::/64')
adr6_1 = ipaddress.ip_address('fdfd:87b5:b475:5e3e:b1bc:e121:a8eb:14aa')
adr6_2 = ipaddress.ip_address('fe80::3840:c439:b25e:63b0')
adr6_1 in net6
# True
adr6_2 in net6
# False
ipaddress.ip_address('192.0.2.1') < ipaddress.ip_address('192.0.2.2')
# True
ip_address()¶
-
ipaddress.
ip_address
(address)¶ Возвращает
IPv4Address()
,IPv6Address()
, сведения по ip адресуaddr = ipaddress.ip_address('10.16.14.17') # IPv4Address('10.16.14.17') int(addr) # 168824337 ipaddress.ip_address('fdfd:87b5:b475:5e3e:b1bc:e121:a8eb:14aa') # IPv6Address('fdfd:87b5:b475:5e3e:b1bc:e121:a8eb:14aa') ipaddress.ip_address(3221225985) # IPv4Address('192.0.2.1') ipaddress.ip_address(42540766411282592856903984951653826561) # IPv6Address('2001:db8::1')
ip_interface()¶
-
ipaddress.
ip_interface
(address)¶ Возвращает
IPv4Interface()
,IPv6Interface()
, сведения по ip адресуaddr = ipaddress.ip_interface('10.9.0.6/24') # IPv4Interface('10.16.14.17') ipaddress.ip_address('fdfd:87b5:b475:5e3e:b1bc:e121:a8eb:14aa/64') # IPv6Interface('fdfd:87b5:b475:5e3e:b1bc:e121:a8eb:14aa/64')
ip_network()¶
-
ipaddress.
ip_network
(address, strict=True)¶ Возвращает
IPv4Network()
,IPv6Network()
, сведения по ip адресуipaddress.ip_network('10.9.0.0/24') # IPv4Network('10.9.0.0/24') ipaddress.ip_network('fdfd:87b5:b475:5e3e::/64') # IPv6Network('fdfd:87b5:b475:5e3e::/64') ipaddress.ip_network('192.0.2.1/24') """ Traceback (most recent call last): ... ValueError: 192.0.2.1/24 has host bits set """ ipaddress.ip_network('192.0.2.1/24', strict=False) # IPv4Network('192.0.2.0/24') ipaddress.ip_network(3221225984) # IPv4Network('192.0.2.0/32') ipaddress.ip_network(42540766411282592856903984951653826560) # IPv6Network('2001:db8::/128')
collapse_addresses()¶
-
ipaddress.
collapse_addresses
(adressess)¶ [ ipaddr for ipaddr in ipaddress.collapse_addresses( [ ipaddress.IPv4Network('192.0.2.0/25'), ipaddress.IPv4Network('192.0.2.128/25') ] ) ] # [IPv4Network('192.0.2.0/24')]
summarize_address_range()¶
-
ipaddress.
summarize_address_range
(first, last)¶ [ ipaddr for ipaddr in ipaddress.summarize_address_range( ipaddress.IPv4Address('192.0.2.0'), ipaddress.IPv4Address('192.0.2.130') ) ] """ [ IPv4Network('192.0.2.0/25'), IPv4Network('192.0.2.128/31'), IPv4Network('192.0.2.130/32') ] """
v4_int_to_packed()¶
-
ipaddress.
v4_int_to_packed
(address)¶ ipaddress.v4_int_to_packed(3221225985) # b'\xc0\x00\x02\x01'
IPv4Address()¶
- class
ipaddress.
IPv4Address
(address)¶ IPv4 объект
IPv4Address('192.168.0.1') # IPv4Address('192.168.0.1') IPv4Address(3232235521) # IPv4Address('192.168.0.1') IPv4Address(b'\xC0\xA8\x00\x01') # IPv4Address('192.168.0.1')
-
compressed
¶
-
exploded
¶
-
is_global
¶
-
is_link_local
¶
-
is_loopback
¶
-
is_multicast
¶
-
is_private
¶ addr.is_private # True
-
is_reserved
¶
-
is_unspecified
¶
-
max_prefixlen
¶
-
packed
¶
-
reverse_pointer
¶ New in version python: 3.5
ipaddress.ip_address("127.0.0.1").reverse_pointer # '1.0.0.127.in-addr.arpa'
-
version
¶ Версия протокола
addr.version # 4
-
IPv6Address()¶
- class
ipaddress.
IPv6Address
¶ addr = IPv6Address(1) # IPv6Address('::1')
-
compressed
¶ ipaddress.ip_address(‘2001:db8::1’).compressed # ‘2001:0db8::1’
-
exploded
¶ ipaddress.ip_address(‘2001:db8::1’).exploded # ‘2001:0db8:0000:0000:0000:0000:0000:0001’
-
ipv4_mapped
¶
-
is_global
¶
-
is_link_local
¶ New in version python: 3.4
-
is_loopback
¶
-
is_multicast
¶
-
is_private
¶ addr.is_private # True
-
is_reserved
¶
-
is_site_local
¶
-
is_unspecified
¶
-
max_prefixlen
¶
-
packed
¶
-
reverse_pointer
¶ New in version python: 3.5
ipaddress.ip_address("2001:db8::1").reverse_pointer # '1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa'
-
sixtofour
¶
-
teredo
¶
-
version
¶ Версия протокола
addr.version # 6
-
IPv4Interface()¶
- class
ipaddress.
IPv4Interface
(address)¶ interface = IPv4Interface('192.0.2.1/24')
-
ip
¶ IPv4Interface('192.0.2.5/24').ip # IPv4Address('192.0.2.5')
-
network
¶ IPv4Interface('192.0.2.5/24').network # IPv4Network('192.0.2.0/24')
-
with_hostmask
¶ IPv4Interface('192.0.2.5/24').with_hostmask # '192.0.2.5/0.0.0.255'
-
with_netmask
¶ IPv4Interface('192.0.2.5/24').with_netmask # '192.0.2.5/255.255.255.0'
-
with_prefixlen
¶ IPv4Interface('192.0.2.5/24').with_prefixlen # '192.0.2.5/24'
-
IPv6Interface()¶
IPv4Network()¶
- class
ipaddress.
IPv4Network
¶ net = IPv4Network('192.0.2.0/24')
-
broadcast_address
¶
-
compressed
¶
-
exploded
¶
-
hostmask
¶ net.hostmask # IPv4Address('0.0.0.255')
-
is_link_local
¶
-
is_loopback
¶
-
is_private
¶
-
is_reserved
¶
-
is_unspecified
¶
-
max_prefixlen
¶
-
netmask
¶ net.netmask # IPv4Address('255.255.255.0')
-
network_address
¶
-
num_addresses
¶ net.num_addresses # 256
-
prefixlen
¶
-
version
¶
-
with_hostmask
¶
-
with_netmask
¶
-
with_prefixlen
¶
-
address_exclude
(network)¶ n1 = ip_network('192.0.2.0/28') n2 = ip_network('192.0.2.1/32') list(n1.address_exclude(n2)) """ [ IPv4Network('192.0.2.8/29'), IPv4Network('192.0.2.4/30'), IPv4Network('192.0.2.2/31'), IPv4Network('192.0.2.0/32') ] """
-
hosts
()¶ for ip in net.hosts() print(ip) """ 192.0.2.1 ... 192.0.2.254 """
-
overlaps
(other)¶
-
subnet_of
(other)¶ New in version python: 3.7
-
subnets
(prefixlen_diff=1, new_prefix=None)¶
-
supernet_of
(other)¶ New in version python: 3.7
-
supernet
(prefixlen_diff=1, new_prefix=None)¶
-
IPv6Network()¶
- class
ipaddress.
IPv6Network
¶ net = IPv6Network('2001:db8::0/96')
-
broadcast_address
¶
-
compressed
¶ network.compressed # ‘2001:0db8::/96’
-
exploded
¶ interface.exploded # ‘2001:0db8:0000:0000:0000:0000:0000:0000/96’
-
hostmask
¶ net.hostmask # IPv6Address('::ffff:ffff)
-
is_link_local
¶
-
is_loopback
¶
-
is_multicast
¶
-
is_private
¶
-
is_reserved
¶
-
is_site_local
¶
-
is_unspecified
¶
-
max_prefixlen
¶
-
network_address
¶
-
netmask
¶ net.netmask # IPv4Address('ffff:ffff:ffff:ffff:ffff:ffff::')
-
num_addresses
¶ net.num_addresses # 4294967296
-
prefixlen
¶
-
version
¶
-
with_hostmask
¶
-
with_netmask
¶
-
with_prefixlen
¶
-
address_exclude
(network)¶
-
hosts
()¶
-
overlaps
(other)¶
-
subnet_of
(other)¶
-
subnets
(prefixlen_diff=1, new_prefix=None)¶
-
supernet_of
(other)¶
-
supernet
(prefixlen_diff=1, new_prefix=None)¶
-