Вопрос

Учитывая двоичное или строковое представление IPv6-адреса и длину его префикса, каков наилучший способ извлечь префикс в Python?

Есть ли библиотека, которая сделала бы это за меня, или мне придется:

  1. преобразуйте адрес из string в int (inet_ntop)
  2. Замаскируйте префикс
  3. Преобразовать префикс обратно в двоичный код
  4. Преобразовать двоичный файл в строку (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::
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top