質問
IPv6 アドレスのバイナリまたは文字列表現とそのプレフィックス長を考慮した場合、Python でプレフィックスを抽出する最良の方法は何でしょうか?
これを行ってくれるライブラリはありますか、それとも次のようにする必要がありますか?
- アドレスを文字列から整数に変換します (inet_ntop)
- プレフィックスをマスクアウトする
- プレフィックスをバイナリに変換して戻す
- バイナリから文字列への変換 (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を使用して netaddr のライブラリます:
>>> from netaddr.ip import IPNetwork, IPAddress
>>> IPNetwork('2001:888:2000:d::a2/64').network
2001:888:2000:d::
所属していません StackOverflow