#批量ping服务器上ip是否通的情况,将ip维护在文件中循环批量读取,注意转换类型
import re
import os
import subprocess
def check_alive(ip,count=1,timeout=1):
'''
ping网络测试,通过调用ping命令,发送一个icmp包,从结果中通过正则匹配是否有100%关键字,有则表示丢包,无则表示正常
'''
cmd = 'ping -c %d -w %d %s' % (count,timeout,ip)
p = subprocess.Popen(cmd,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
shell=True
)
result = p.stdout.read()
regex = re.findall('100% packet loss',str(result))
print(result)
if len(regex) == 0:
print("\033[31m%s UP\033[0m" % (ip))
else:
print("\033[32m%s DOWN\033[0m" % (ip))
path=os.getcwd()
a_path=os.path.join(path,"IpTest/ip.txt")
#print(a_path)
if __name__ == "__main__":
with open(a_path,"r") as f:
for line in f.readlines():
ip = line.strip()
check_alive(ip) #执行函数功能调用
Python----批量ping网络操作
最新推荐文章于 2024-07-06 03:04:02 发布