如何在python中循环访问IP地址范围
如何在python中循环IP地址范围?假设我想循环从192.168.1.1到192.168的每个IP。如何做到这一点?您是否尝试过使用如何在python中循环访问IP地址范围,python,Python,如何在python中循环IP地址范围?假设我想循环从192.168.1.1到192.168的每个IP。如何做到这一点?您是否尝试过使用范围循环 for i in range(256): for j in range(256): ip = "192.168.%d.%d" % (i, j) print ip 您可以使用: 使用NetAddress模块: 如果要在网络中循环,可以使用ipaddress模块定义网络。例如ipaddress.IPv4Networ
范围循环
for i in range(256):
for j in range(256):
ip = "192.168.%d.%d" % (i, j)
print ip
您可以使用:
使用NetAddress模块:
如果要在网络中循环,可以使用ipaddress模块定义网络。例如ipaddress.IPv4Network('192.168.1.0/24'))
这将产生如下结果:
192.168.1.0
192.168.1.1
192.168.1.2
192.168.1.3
...
192.168.1.255
但是,如果您想遍历一系列ip,可能需要在ip和integer之间进行转换
>>> int(ipaddress.IPv4Address('10.0.0.1'))
167772161
因此:
将产生如下结果:
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
192.168.
是有效的ip地址吗?看看图书馆Hi-Petr-如果你能解释一下你的代码如何或为什么能解决提问者的问题,你的答案会更好。Hi-Petr,谢谢你的解决方案,这正是我要找的,因为我已经在使用NetAddress,我不想再导入一个liblink。这正是我要找的,非常感谢;-)
import ipaddress
for ip in ipaddress.IPv4Network('192.168.1.0/24'):
print(ip)
192.168.1.0
192.168.1.1
192.168.1.2
192.168.1.3
...
192.168.1.255
>>> int(ipaddress.IPv4Address('10.0.0.1'))
167772161
start_ip = ipaddress.IPv4Address('10.0.0.1')
end_ip = ipaddress.IPv4Address('10.0.0.5')
for ip_int in range(int(start_ip), int(end_ip)):
print(ipaddress.IPv4Address(ip_int))
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4