繁体   English   中英

瓶Python ping检查5次ping

[英]Bottle Python ping check 5 pings

我正在尝试编写一个脚本,以5次ping将ping检查打印到浏览器。

该脚本:

from bottle import route, run, template
import subprocess

@route('/pings/<ip>')

def ping(ip):
   param = '-c 1'
   command = ['ping', param, ip]
   num = 0
   while (num < 6):
      return subprocess.check_output(command)
      num += 1

run(host='0.0.0.0', port=8080)

当前输出到浏览器,如下所示:

PING 8.8.8.8(8.8.8.8)56(84)个字节的数据。 从8.8.8.8起为64个字节:icmp_seq = 1 ttl = 54时间= 17.7 ms --- 8.8.8.8 ping统计信息---发送1个数据包,接收1个,丢失0%数据包,时间0ms rtt最小/平均/最大/ mdev = 17.756 / 17.756 / 17.756 / 0.000毫秒

但是它并不能像我期望的那样打印出5张ping。 它仅打印出一个ping,是否由于某种原因仅打印了最后一个? 如果从shell命令运行它,我将如何打印出5张ping信息。

谢谢。

该循环仅运行一次,因为return是在循环的第一次迭代期间执行的,因此您只会得到第一个结果。 您可以获取ping结果并将其附加到列表中,然后在循环完成后就可以返回该列表。

def ping(ip):
   param = '-c 1'
   command = ['ping', param, ip]
   num = 0
   output = []
   while (num < 6):
      output.append(subprocess.check_output(command))
      num += 1
   return output // or return "\n".join(output)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM