Извлечение префикса ipv6 в python
Вопрос
Учитывая двоичное или строковое представление IPv6-адреса и длину его префикса, каков наилучший способ извлечь префикс в Python?
Есть ли библиотека, которая сделала бы это за меня, или мне придется:
- преобразуйте адрес из string в int (inet_ntop)
- Замаскируйте префикс
- Преобразовать префикс обратно в двоичный код
- Преобразовать двоичный файл в строку (inet_ntop)
Решение
Видишь http://code.google.com/p/ipaddr-py/
С помощью этого вы можете сделать
py> p=ipaddr.IPv6("2001:888:2000:d::a2")
py> p.SetPrefix(64)
py> p
IPv6('2001:888:2000:d::a2/64')
py> p.network_ext
'2001:888:2000:d::'
и т.д.
Другие советы
Использование python чистый аддон библиотека:
>>> from netaddr.ip import IPNetwork, IPAddress
>>> IPNetwork('2001:888:2000:d::a2/64').network
2001:888:2000:d::
Не связан с StackOverflow