gpt4 book ai didi

python - 如何从 Python 中的 IP 范围列表生成所有可能的 IP?

转载 作者:行者123 更新时间:2023-11-28 19:37:23 24 4
gpt4 key购买 nike

假设我有一个文本文件包含一堆这样的 ip 范围:

x.x.x.x-y.y.y.y
x.x.x.x-y.y.y.y
x.x.x.x-y.y.y.y
x.x.x.x-y.y.y.y
x.x.x.x-y.y.y.y

x.x.x.x 是起始值,y.y.y.y 是范围的结束值。

如何将这些 IP 范围转换为 Python 新文本文件中所有可能的 IP?

PS:这个问题和我之前的任何一个问题都不一样。我在上一个问题中问过“如何从 cidr 符号生成所有可能的 ips”。但在这里我问“如何从 ip 范围列表生成”。这些是不同的东西。

最佳答案

此函数返回所有 ip 地址,如从头到尾:

def ips(start, end):
import socket, struct
start = struct.unpack('>I', socket.inet_aton(start))[0]
end = struct.unpack('>I', socket.inet_aton(end))[0]
return [socket.inet_ntoa(struct.pack('>I', i)) for i in range(start, end)]

这些是您自己构建它的构建基 block :

>>> import socket, struct
>>> ip = '0.0.0.5'
>>> i = struct.unpack('>I', socket.inet_aton(ip))[0]
>>> i
5
>>> i += 1
>>> socket.inet_ntoa(struct.pack('>I', i))
'0.0.0.6'

例子:

ips('1.2.3.4', '1.2.4.5')
['1.2.3.4', '1.2.3.5', '1.2.3.6', '1.2.3.7', ..., '1.2.3.253', '1.2.3.254', '1.2.3.255', '1.2.4.0', '1.2.4.1', '1.2.4.2', '1.2.4.3', '1.2.4.4']

从文件读取

在你的情况下,你可以从这样的文件中读取:

with open('file') as f:
for line in f:
start, end = line.strip().split('-')
# ....

关于python - 如何从 Python 中的 IP 范围列表生成所有可能的 IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17641492/

24 4 0
文章推荐: python - 如何检查 Python 中的函数类型?
文章推荐: python - 美丽汤 :
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com