Python Glossary English

все Python 3socketфункция

socket.inet_ntop()

преобразование адресов и порядка байтов

Переводит байты IPv4- или IPv6-адреса в каноническую строку по указанному семейству.

Синтаксис

socket.inet_ntop(address_family, packed_ip) -> str

Удобна для нормализации IPv6: '2001:0db8:0000::0001' туда и обратно превращается в '2001:db8::1', и строки можно сравнивать. Неверная длина байтов даёт ValueError — не OSError, как у inet_ntoa, поэтому ловить надо оба. Семейство и длина должны совпадать: 4 байта с AF_INET, 16 — с AF_INET6.

Примеры

import socket
packed = socket.inet_pton(socket.AF_INET6, '2001:0db8:0000:0000::0001')
print(socket.inet_ntop(socket.AF_INET6, packed))  # → 2001:db8::1
try:
    socket.inet_ntop(socket.AF_INET, b'abc')
except ValueError as e:
    print(type(e).__name__)  # → ValueError

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности