免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2909 | 回复: 4
打印 上一主题 下一主题

[求助]IP地址列表相关问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-17 15:43 |只看该作者 |倒序浏览
有个文件,文件有两列,分别是一个IP段的开始IP 和结束IP, 如下:
ip1  ip2
ip3  ip4
....
ipm ipn


现在问题是,这写IP段之间可能有交集,或者包含关系,如何将IP段,拆成一个个不含交集 和包含关系的IP段呢?
即 ipm -- ipn 这个段和ip1 -- ip2这个段有交集,需要把他们处理,得到不相交和包含的IP段,怎么弄呢,希望大牛指点,谢谢啦

论坛徽章:
0
2 [报告]
发表于 2011-05-17 16:27 |只看该作者
没有人? 求助啊!!!

论坛徽章:
0
3 [报告]
发表于 2011-05-18 09:13 |只看该作者
看能否可以考虑使用集合试试。先列出所有IP,再放到集合里面。

论坛徽章:
0
4 [报告]
发表于 2011-05-18 10:52 |只看该作者
读取文件 把ip地址放到 [head-[*,*,*,*] , tail-[*,*,*,*]] 解析出ip地址段list
根据head 把ip地址段升序排序
for i in len(list):
     if list[i][tail] <  list[i+1][head] :
       #没有交集 继续next
     else if list[i][tail] >= list[i+1][tail] :
           #i包含i+1
           temp = list[i+1][tail]
           list[i][tail], list[i+1][tail] = list[i+1][tail], list[i][tail]
           list[i+1][head] = temp
     else: #list[i][tail] < list[i+1][tail]
           #i 与i+1 有交集
       list[i][tail], list[i+1][head] = list[i+1][head], list[i][tail]

上面给出了大概的处理流程。

论坛徽章:
0
5 [报告]
发表于 2011-05-18 13:28 |只看该作者
回复 4# ccporxy


    谢谢楼上的,我仔细学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP