用Python判断CIDR重叠

2020-07-02 00:00:00 专区 订阅 网络 分发 工具包

近在写代码的时候,有一个需求就是判断一个新增的CIDR是否与现有的CIDR重叠。

netaddr

Python下比较经典的IP地址工具包。github。

import netaddr

new_cidr = "10.0.0.0/24"
old_cidr = "10.0.0.0/16"

def is_overlap(old, new):
    old_net = netaddr.IPNetwork(old)
    new_net = netaddr.IPNetwork(new)
    return old_net in new_net or new_net in old_net

is_overlap(old_cidr, new_cidr)
>>> True

相关文章