все 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Сообщить о неточности