首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当pinging返回值为1而不是0时,如何使“目标主机不可访问”

问当pinging返回值为1而不是0时,如何使“目标主机不可访问”
EN

Stack Overflow用户
提问于 2022-01-16 04:36:26
回答 1查看 405关注 0票数 0

我正在使用python来编写一个程序,该程序将对一个设备进行平压,如果它从设备中得到一个响应,则什么也不做,但是如果它没有收到任何响应,它会给我发一封电子邮件,通知我设备可能坏了。但是,如前所述,当来自ping的响应是“无法到达的目的地主机”时,返回值为0,这与接收到响应相同。所以我要找的是如何从实际的响应中识别出无法到达的目标主机,这样我就可以在这种情况下向我发送一封电子邮件(因为这意味着设备很可能关闭)。

代码语言:javascript
复制
import platform
import subprocess
import smtplib
import time

#Delay to wait for Rigs to Boot
#time.sleep(600)

a = 1
while 1==1:
    #Ping other PC's
    def myping(host):
    parameter = '-n' if platform.system().lower()=='windows' else '-c'
    command = ['ping', parameter, '1', host]
    response = subprocess.call(command)

    if response == 0:
        return True
    #Will Send email if response from ping is false (aka not pingable/down)
    else:

        gmail_user = 'email'
        gmail_password = 'password'

        sent_from = gmail_user
        to = ['recepient']
        subject = 'subject'
        body = 'body'

        email_text = """\
        From: %s
        To: %s
        Subject: %s

        %s
        """ % (sent_from, ", ".join(to), subject, body)

        try:
            smtp_server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
            smtp_server.ehlo()
            smtp_server.login(gmail_user, gmail_password)
            smtp_server.sendmail(sent_from, to, email_text)
            smtp_server.close()
            print ("Email sent successfully!")
        except Exception as ex:
            print ("Something went wrong….",ex)
    
    #delay so i dont recieve spam emails while the 'while' loop runs
    time.sleep(43000)


print(myping("ip to ping"))

谢谢你提前提供帮助。

EN

回答 1

Stack Overflow用户

发布于 2022-01-16 04:55:03

显然,您不能改变ping的行为。但是,当然可以使用subprocess.check_output,它返回命令的输出,并对其进行解析。

像这样使用ping并不特别有用。您无法访问远程主机的原因有很多。可能您的本地网络已关闭,或您的路由器已死亡,或您的电缆已被拔出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70727410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档