使用ping知道我的服务器是启动还是关闭。 。

时间:2018-10-07 18:06:16

标签: python python-3.x subprocess python-3.6 ping

感谢您的宝贵时间。

我正在尝试使用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()

1 个答案:

答案 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。