如何在python中循环访问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

如何在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.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