PythonでIPアドレスの最後のn桁をゼロにするにはどうすればよいですか? 標準ライブラリ、おそらくipaddressを使用したソリューションを好むでしょう。
一部のstrip_addr
テストケースは次のようになります。
assert strip_addr(u'1.2.3.4', 24) == u'1.2.3.0'
assert strip_addr(u'2001:1234:f678::9', 33) == u'2001:1234:8000::'
PythonでIPアドレスの最後のn桁をゼロにするにはどうすればよいですか? 標準ライブラリ、おそらくipaddressを使用したソリューションを好むでしょう。
一部のstrip_addr
テストケースは次のようになります。
assert strip_addr(u'1.2.3.4', 24) == u'1.2.3.0'
assert strip_addr(u'2001:1234:f678::9', 33) == u'2001:1234:8000::'
インターフェイス ネットワーク オブジェクトを使用するのはどうですか。
import ipaddress
def strip_addr(ip, bits):
nwif = ipaddress.ip_interface(u'%s/%s' % (ip, bits))
return str(nwif.network.network_address)
assert strip_addr(u'1.2.3.4', 24) == u'1.2.3.0'
assert strip_addr(u'2001:1234:f678::9', 33) == u'2001:1234:8000::'