Python 3.3+ipaddressпонятие
ipaddress.IPv6Address
адреса
Класс адреса IPv6: хранит 128-битный адрес, печатается в сокращённой форме, полную даёт .exploded.
Синтаксис
ipaddress.IPv6Address(address)
Одна и та же точка записывается многими строками ('2001:0db8:0000::0001' и '2001:db8::1'), поэтому сравнивать адреса строками нельзя — только объектами: str() всегда даёт каноническую сокращённую форму. IPv4-отображённый адрес '::ffff:1.2.3.4' не равен IPv4Address('1.2.3.4'); вытащить IPv4 из него помогает .ipv4_mapped. С IPv4Address через < не сравнивается — TypeError.
Примеры
import ipaddress
a = ipaddress.IPv6Address('2001:0db8:0000::0001')
print(a) # → 2001:db8::1
print(a.exploded) # → 2001:0db8:0000:0000:0000:0000:0000:0001
m = ipaddress.IPv6Address('::ffff:1.2.3.4')
print(m == ipaddress.IPv4Address('1.2.3.4'), m.ipv4_mapped) # → False 1.2.3.4
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности