2008-12-11 70 views
1

給出IPv6地址的二進制或字符串表示及其前綴長度,在Python中提取前綴的最佳方法是什麼?在Python中提取ipv6前綴

是否有願意爲我做這個圖書館,或者我會:

  1. 轉換地址從字符串爲int(inet_ntop)
  2. 屏蔽掉前綴
  3. 轉換前綴回二進制
  4. 二進制轉換爲字符串(inet_ntop)

回答

2

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

0

使用Python netaddr庫:

>>> from netaddr.ip import IPNetwork, IPAddress 
>>> IPNetwork('2001:888:2000:d::a2/64').network 
2001:888:2000:d::