Question

Étant donné soit la représentation binaire ou une chaîne d'une adresse IPv6 et sa longueur de préfixe, ce qui est la meilleure façon d'extraire le préfixe en Python?

Y at-il une bibliothèque qui ferait cela pour moi, ou devrais-je:

  1. convertir l'adresse de chaîne à un int (inet_ntop)
  2. Masque le préfixe
  3. Convertir préfixe retour en binaire
  4. Convertir binaire à la chaîne (inet_ntop)
Était-ce utile?

La solution

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

Avec cela, vous pouvez le faire

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.

Autres conseils

Utilisation de la bibliothèque python netaddr :

>>> from netaddr.ip import IPNetwork, IPAddress
>>> IPNetwork('2001:888:2000:d::a2/64').network
2001:888:2000:d::
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top