检查重叠的子网

时间:2018-04-13 07:55:42

标签: python overlap subnet cidr

我有2个文件包含cidr格式的子网(212.234.96.0/24, 80.10.0.0/24,...)Liny by line。我希望你创建一个python脚本,告诉我重叠的子网。输入是file1(子网列表,超过4000)和file2(我想用file1检查的列表)。我希望file3中的输出与file2子网不重叠。

另一方面,我在shell脚本中完成了这项工作,但处理时间太长(对于+4000子网处理)。有人建议我应该在python中做这个工作。问题是我在python中是新手。

谢谢。

1 个答案:

答案 0 :(得分:1)

粗略轮廓:

  1. 将file1读入数组subnet,子网地址为netmask,将两者都转换为unsigned int32
  2. 从file2读取entry,转换为unsigned int32
  3. 对于每个subnet元素,if (entry.uint32 & subnet.netmask.uint32) == (subnet.address.uint32 & subnet.netmask.uint32)然后entry位于subnet
  4. 如果entry不在任何子网中,请将entry写入file3
  5. 你可以用你喜欢的任何语言来做到这一点。