Python 3.3+ipaddressфункция
ipaddress.v6_int_to_packed()
упаковка в байты
Переводит целое число в 16 байт адреса IPv6 в сетевом порядке (big-endian).
Синтаксис
ipaddress.v6_int_to_packed(address)
Результат всегда ровно 16 байт, даже для маленьких чисел: адрес ::1 — это 15 нулей и единица. Числа вне 0..2**128-1 дают ValueError. Обратно байты читает IPv6Address(b); но ip_address() у 4-байтовой строки выберет IPv4, а у 16-байтовой — IPv6.
Примеры
import ipaddress
b = ipaddress.v6_int_to_packed(1)
print(len(b), b[-1]) # → 16 1
print(ipaddress.IPv6Address(b)) # → ::1
ipaddress.v6_int_to_packed(2 ** 128) # → ValueError: Address negative or too large for IPv6
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности