Встроенный в libs, чтобы дать ipv6 адрес без ограничений? - PullRequest
0 голосов
/ 08 марта 2019

Как мне обрезать начальные нули в адресной строке ipv6 в python?

Например: мне нужно 1: 1: 1: 1: 1: 1: 0: 1, чтобы обрезать до 1: 1: 1: 1: 1: 1 :: 1

Я пытался использовать socket.inet_ntop и socket.inet_pton, но они не помогают в моем случае

#!/usr/bin/env python
import socket
import struct
address = '1:1:1:1:1:1:0:1'
addr = socket.inet_ntop(socket.AF_INET6,socket.inet_pton(socket.AF_INET6, address))
print (addr)

Это печатает ту же строкукак вывод 1: 1: 1: 1: 1: 1: 0: 1

Я также попробовал библиотеку ipaddress, которая выдает тот же вывод, что и выше.

#!/usr/bin/env python
import ipaddress
ip = '1:1:1:1:1:1:0:1'
print(str(ipaddress.ip_address(ip)))

Я пыталсяиспользуя netaddr lib, обращаясь к ответу с наибольшим количеством голосов на этот вопрос, но получаю ошибку импорта.Я использую Python 3.0.

Я также пытался использовать эту библиотеку, но получаю ошибку ImportError: Нет модуля с именем 'IPy'

#!/usr/bin/env python
from IPy import IP
print(IP('1080:0:0:0:8:800:200C:417A'))

Яс удивлением обнаружил, что ни у кого не было настоящего четкого решения во встроенной библиотеке для решения этой проблемы.Может кто-нибудь помочь?

...