首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python ping脚本

Python ping脚本
EN

Stack Overflow用户
提问于 2018-06-14 04:55:27
回答 1查看 18.7K关注 0票数 2

我正在尝试编写一个Python脚本,用于ping IP地址并输出每个ping是否成功。到目前为止,我有以下代码,但输出似乎不准确。也就是说,当我运行脚本时,它会像预期的那样ping每个主机名,但输出结果总是up或all down。

代码语言:javascript
复制
import os

hostname0 = "10.40.161.2"
hostname1 = "10.40.161.3"
hostname2 = "10.40.161.4"
hostname3 = "10.40.161.5"

response = os.system("ping -c 1 " + hostname0)
response = os.system("ping -c 1 " + hostname1)
response = os.system("ping -c 1 " + hostname2)
response = os.system("ping -c 1 " + hostname3)

if response == 0:
    print hostname0, 'is up'
    print hostname1, 'is up'
    print hostname2, 'is up'
    print hostname3, 'is up'
else:
    print hostname0, 'is down'
    print hostname1, 'is down'
    print hostname2, 'is down'
    print hostname3, 'is down'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-14 04:59:13

您应该在print每个主机名后立即打印结果。试试这个:

代码语言:javascript
复制
import os

hostnames = [
    '10.40.161.2',
    '10.40.161.3',
    '10.40.161.4',
    '10.40.161.5',
]

for hostname in hostnames:
    response = os.system('ping -c 1 ' + hostname)
    if response == 0:
        print(hostname, 'is up')
    else:
        print(hostname, 'is down')

此外,您应该考虑使用subprocess module而不是os.system(),因为后者已被弃用。

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

https://stackoverflow.com/questions/50846131

复制
相关文章

相似问题

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