感谢您的宝贵时间。
我正在尝试使用ping来确定几个服务器是否启动或关闭,并且它能正常工作。 。 。但是当我尝试将结果转换为up或down时,出了点问题,并且总是down。
Dunno我还应该尝试其他什么东西,不需要其他任何东西,只需向上或向下以及IP。
import os
import datetime
import platform
import subprocess
import string
date = datetime.datetime.now()
day = date.day
hour = date.hour
def writedoc ():
os.chdir ('Path')
wresult = open ("pingresults_{}_{}.txt".format(day,hour), 'a')
wresult.write ('{}-{}\n'.format(ips, rping))
wresult.close ()
os.chdir ('Path')
openips = open ("ips.txt","r")
ipfile = openips.readlines()
for ips in ipfile:
ips = ips.strip()
print (ips)
args = ["ping", "-n", "4", "-l", "1", "-w", "1000", ips]
pping = subprocess.Popen(args, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
rping = pping.stdout
for line in rping:
print (line)
if (rping.find("(100% perdidos)" != -1)):
result = "down"
print (result)
else:
result = "up"
print (result)
writedoc()
答案 0 :(得分:0)
if (rping.find("(100% perdidos)" != -1))
应该改为
if (rping.find("(100% perdidos)") != -1)
这样可以检查rping.find("(100% perdidos)")
是否不返回-1。
在您的示例中,您实际上以
的身份调用rping.find(True)
"(100% perdidos)"
不等于-1。