如何从ip地址中删除最后一位

时间:2013-02-04 01:09:06

标签: python ip-address

如何将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::'

1 个答案:

答案 0 :(得分:3)

如何使用interface network objects

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