Pregunta

Teniendo en cuenta ya sea la representación binaria o una cadena de una dirección IPv6 y su longitud de prefijo, ¿cuál es la mejor manera de extraer el prefijo en Python?

¿Hay una biblioteca que hacer esto por mí, o tendría que:

  1. convertir la dirección de la cadena a un int (inet_ntop)
  2. máscara de las prefijo
  3. Convertir prefijo de nuevo a binario
  4. Convertir binario a cuerda (inet_ntop)
¿Fue útil?

Solución

http://code.google.com/p/ipaddr-py/

Con esto, se puede hacer

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::'

etc.

Otros consejos

Uso de la pitón netaddr de biblioteca:

>>> from netaddr.ip import IPNetwork, IPAddress
>>> IPNetwork('2001:888:2000:d::a2/64').network
2001:888:2000:d::
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top