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:
- convertir la dirección de la cadena a un int (inet_ntop)
- máscara de las prefijo
- Convertir prefijo de nuevo a binario
- Convertir binario a cuerda (inet_ntop)
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