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

Python中的多个ping脚本
EN

Stack Overflow用户
提问于 2012-08-24 07:09:43
回答 7查看 140.1K关注 0票数 21

我找不到任何关于python和网络的好的易学文档。在本例中,我只是想创建一个简单的脚本,我可以ping多台远程机器。

for ping in range(1,10):
   ip="127.0.0."+str(ping)
   os.system("ping -c 3 %s" % ip)

像这样一个简单的脚本可以很好地ping机器,但我想让脚本返回'active‘'no response’,这让我认为我也必须查找time模块,我认为是time.sleep(5),在那之后会有一个break语句。这让我觉得在for内部应该有一个while循环。我不能百分之百确定,我可能完全走错了方向:/如果有人能帮助我或为我指出一些文档的方向,那就太好了。

EN

回答 7

Stack Overflow用户

发布于 2012-08-24 07:21:56

试试subprocess.call。它保存所用程序的返回值。

根据我的ping手册,成功时返回0,发送ping但未收到回复时返回2,任何其他值表示错误。

# typo error in import
import subprocess

for ping in range(1,10):
    address = "127.0.0." + str(ping)
    res = subprocess.call(['ping', '-c', '3', address])
    if res == 0:
        print "ping to", address, "OK"
    elif res == 2:
        print "no response from", address
    else:
        print "ping to", address, "failed!"
票数 30
EN

Stack Overflow用户

发布于 2013-09-24 04:27:02

非常感谢你这么做。我对它进行了修改,使其可以与Windows配合使用。我还设置了一个低超时,因此,没有返回的IP将不会坐下来等待每个5秒。这是来自hochl的源代码。

import subprocess
import os
with open(os.devnull, "wb") as limbo:
        for n in xrange(200, 240):
                ip="10.2.7.{0}".format(n)
                result=subprocess.Popen(["ping", "-n", "1", "-w", "200", ip],
                        stdout=limbo, stderr=limbo).wait()
                if result:
                        print ip, "inactive"
                else:
                        print ip, "active"

只需更改方案的ip=和主机的xrange即可。

票数 6
EN

Stack Overflow用户

发布于 2016-01-17 00:53:36

我是一个初学者,写了一个脚本来ping多个hosts.To ping多个主机,你可以使用I地址模块。

import ipaddress
from subprocess import Popen, PIPE

net4 = ipaddress.ip_network('192.168.2.0/24')
for x in net4.hosts():
    x = str(x)
    hostup = Popen(["ping", "-c1", x], stdout=PIPE)
    output = hostup.communicate()[0]
    val1 = hostup.returncode
 if val1 == 0:
    print(x, "is pinging")
 else:
    print(x, "is not responding")
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12101239

复制
相关文章

相似问题

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