该脚本需要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运行脚本。