Skip to main content
 首页 » 编程设计

python之枚举域范围从 192.55.22.0 到 192.56.22.0 中的所有 IP 地址

2025年05月04日14exmyth

如何通过python整理出从192.55.22.0到192.56.22.0的所有域范围
我想在一个 IP 地址范围内执行一组网络任务。一旦范围变大,我就无法枚举范围内的所有主机。我希望能够使用网络掩码遍历网络的所有主机 如果我将任何范围从一个传递到另一个以显示范围之间

请您参考如下方法:

你的例子有点令人困惑。 “192.55.22.0”和“192.56.22.0”之间是什么?您写道“使用网络掩码遍历网络的所有主机”,但该范围不是一个完整的网络。

在一般情况下,要从某个 ip 迭代到另一个 ip,您可以使用:

def ip_atoi(ip): 
    return struct.unpack('!I', socket.inet_aton(ip))[0] 
def ip_itoa(ip): 
    return socket.inet_ntoa(struct.pack('!I', ip)) 
 
current = ip_atoi('192.55.22.0') 
end = ip_atoi('192.56.22.0') 
 
for ip in xrange(current, end): 
    do_something_on(ip_itoa(ip)) 

如果您在如此多的主机上快速执行网络操作时遇到问题,请查看 multiprocessing 模块中的 Pool。它可以通过一次处理几个主机来加快您的操作。