该脚本需要ping3模块,可以通过如下命令进行安装:

pip3 install ping3

该脚本是zabbix的监控脚本,所以最后反馈Normal或者False。

import ping3
def ping(ip):
    a = 0 #ping成功计数器
    for addr in ip:
        if ping3.ping(addr,timeout=5000,unit='ms'): #如果能ping通就把a+1
            a = a+1
        else:
            continue
    if a == len(ip):
        print ('Normal') #如果成功的次数和list的长度一致,说明网络正常
    else:
        print ('False')
if __name__ == '__main__':
    ping(['192.168.0.2','192.168.0.3'])

另一个实现方法:

import subprocess
def check_alive(ip):
    result = subprocess.call('ping -w 5 -c 1 %s' %ip,stdout=subprocess.PIPE,shell=True)
    if result == 0:
        print('%s 能ping通' %(ip))
    else:
        print('%s ping不通!' % ip)
if __name__ == '__main__':
    print("开始批量ping所有IP!")
    for i in ['192.168.0.2','192.168.0.3']:
        check_alive(i)

推荐python3运行脚本。