IP ping范围

时间:2016-06-12 12:20:57

标签: python

好的,我希望能够输入起始和结束IP并ping它们之间的所有IP地址,包括列出的IP地址,然后将结果显示到.txt文档中。我可以让它为单个IP工作,但我不知道如何制作它所以用户必须输入2个IP并且它成功地ping其中的所有IP。谢谢。这是我现在所拥有的,但遇到了麻烦。

if(isset($_POST)){ 

1 个答案:

答案 0 :(得分:0)

import struct
import socket

def findIPs(start, end):
    ipstruct = struct.Struct('>I')
    start, = ipstruct.unpack(socket.inet_aton(start))
    end, = ipstruct.unpack(socket.inet_aton(end))
    return [socket.inet_ntoa(ipstruct.pack(i)) for i in range(start, end+1)]

def pingNetwork(range_ips):
    for ip in range_ips:
        response = os.system("ping -c 1 " + ip)
        if response == 0:
            with open('IP_LOG_TIMESTAMP.txt', 'w') as f:
                f.write(ip+ ' is up!')
        else:
            with open('IP_LOG_TIMESTAMP.txt', 'w') as f:
                f.write(ip+ ' is down!')

ips = findIPs('111.111.111.0', '111.111.111.3')
pingNetwork(ips)