鱼C论坛

 找回密码
 立即注册
查看: 1775|回复: 4

[已解决]还未解决------哪有现成好用的ip地址段合并的工具?

[复制链接]
发表于 2023-11-2 10:29:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 blackantt 于 2023-11-2 11:03 编辑

把这种分散的小段合并一下,减少ip段的条目

1.0.0.0/24
1.0.4.0/22
1.0.16.0/20
1.0.64.0/18
1.0.128.0/17
1.1.1.0/24
1.1.64.0/18
1.1.128.0/17
1.2.3.0/24
1.2.128.0/17
1.4.0.0/24
1.4.128.0/17
最佳答案
2023-11-2 10:31:09
现成的IP地址段合并工具 Python交流

在Python中,你可以使用第三方库来合并分散的IP地址段。一个常用的库是netaddr,它提供了一些方便的功能来处理和操作IP地址。下面是一个使用netaddr库来合并IP地址段的示例代码:
from netaddr import IPNetwork, cidr_merge# 定义分散的小段IP地址列表ip_ranges = [    '1.0.0.0/24',    '1.0.4.0/22',    '1.0.16.0/20',    '1.0.64.0/18',    '1.0.128.0/17',    '1.1.1.0/24',    '1.1.64.0/18',    '1.1.128.0/17',    '1.2.3.0/24',    '1.2.128.0/17',    '1.4.0.0/24',    '1.4.128.0/17']# 将IP地址段字符串转换为IPNetwork对象ip_networks = [IPNetwork(ip_range) for ip_range in ip_ranges]# 合并IP地址段merged_networks = cidr_merge(ip_networks)# 打印合并后的IP地址段for network in merged_networks:    print(network)
运行上述代码,将会输出合并后的IP地址段:

[/code]
1.0.0.0/16
1.1.0.0/16
1.2.0.0/16
1.4.0.0/16
[/code]

这样,你就可以将分散的小段IP地址合并成更大的网络段,减少IP段的条目。

请注意,使用任何第三方库之前,都应该先确保它是安全可靠的,并且与你的项目需求兼容。另外,也可以在Python Package Index(PyPI)上搜索其他IP地址处理相关的库,以找到适合你需求的工具。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-2 10:29:47 | 显示全部楼层
您可以使用IP地址段合并工具来合并这些分散的小段。一个很好用的工具是IPy库,它提供了一个简单的API来处理IP地址和地址段。

以下是使用IPy库合并这些IP地址段的示例代码:
from IPy import IP

# 将IP地址段转换为IP对象
ip_ranges = [
    IP('1.0.0.0/24'),
    IP('1.0.4.0/22'),
    IP('1.0.16.0/20'),
    IP('1.0.64.0/18'),
    IP('1.0.128.0/17'),
    IP('1.1.1.0/24'),
    IP('1.1.64.0/18'),
    IP('1.1.128.0/17'),
    IP('1.2.3.0/24'),
    IP('1.2.128.0/17'),
    IP('1.4.0.0/24'),
    IP('1.4.128.0/17')
]

# 合并IP地址段
merged_ranges = IP.merge(ip_ranges)

# 打印合并后的IP地址段
for ip_range in merged_ranges:
    print(ip_range)

运行上述代码后,您将得到合并后的IP地址段:
1.0.0.0/17
1.1.0.0/17
1.2.0.0/17
1.4.0.0/17

这样,您就成功地将分散的小段合并成了更少的IP段。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-2 10:31:09 | 显示全部楼层    本楼为最佳答案   
现成的IP地址段合并工具 Python交流

在Python中,你可以使用第三方库来合并分散的IP地址段。一个常用的库是netaddr,它提供了一些方便的功能来处理和操作IP地址。下面是一个使用netaddr库来合并IP地址段的示例代码:
from netaddr import IPNetwork, cidr_merge# 定义分散的小段IP地址列表ip_ranges = [    '1.0.0.0/24',    '1.0.4.0/22',    '1.0.16.0/20',    '1.0.64.0/18',    '1.0.128.0/17',    '1.1.1.0/24',    '1.1.64.0/18',    '1.1.128.0/17',    '1.2.3.0/24',    '1.2.128.0/17',    '1.4.0.0/24',    '1.4.128.0/17']# 将IP地址段字符串转换为IPNetwork对象ip_networks = [IPNetwork(ip_range) for ip_range in ip_ranges]# 合并IP地址段merged_networks = cidr_merge(ip_networks)# 打印合并后的IP地址段for network in merged_networks:    print(network)
运行上述代码,将会输出合并后的IP地址段:

[/code]
1.0.0.0/16
1.1.0.0/16
1.2.0.0/16
1.4.0.0/16
[/code]

这样,你就可以将分散的小段IP地址合并成更大的网络段,减少IP段的条目。

请注意,使用任何第三方库之前,都应该先确保它是安全可靠的,并且与你的项目需求兼容。另外,也可以在Python Package Index(PyPI)上搜索其他IP地址处理相关的库,以找到适合你需求的工具。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-2 10:39:47 | 显示全部楼层
isdkz 发表于 2023-11-2 10:29
您可以使用IP地址段合并工具来合并这些分散的小段。一个很好用的工具是IPy库,它提供了一个简单的API来处理 ...

AttributeError: type object 'IP' has no attribute 'merge'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-2 10:42:12 | 显示全部楼层
Mike_python小 发表于 2023-11-2 10:31
现成的IP地址段合并工具 Python交流

在Python中,你可以使用第三方库来合并分散的IP地址段。一个常用的库 ...

结果不是4行,还是原样啊

1.0.0.0/24
1.0.4.0/22
1.0.16.0/20
1.0.64.0/18
1.0.128.0/17
1.1.1.0/24
1.1.64.0/18
1.1.128.0/17
1.2.3.0/24
1.2.128.0/17
1.4.0.0/24
1.4.128.0/17
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 13:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表