瓶子 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) bytes of data. 64 bytes from 8.8.8.8:
icmp_seq=1 ttl=54 time=17.7 ms --- 8.8.8.8 ping statistics --- 1
packets transmitted, 1 received, 0% packet loss, time 0ms rtt
min/avg/max/mdev = 17.756/17.756/17.756/0.000 ms
但它并没有像我期望的那样打印出 5 个 ping。它只打印出一个 ping,是否出于某种原因只打印出最后一个?如果您从 shell 命令中 运行 它,我如何打印出 5 个 ping。
谢谢。
循环仅 运行 一次,因为 return
是在循环的第一次迭代期间执行的,因此您只会得到第一个结果。您可以获得 ping 结果并将其附加到列表中,然后一旦循环完成,您就可以 return 该列表。
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)
我正在尝试编写一个脚本,通过 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) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=17.7 ms --- 8.8.8.8 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 17.756/17.756/17.756/0.000 ms
但它并没有像我期望的那样打印出 5 个 ping。它只打印出一个 ping,是否出于某种原因只打印出最后一个?如果您从 shell 命令中 运行 它,我如何打印出 5 个 ping。
谢谢。
循环仅 运行 一次,因为 return
是在循环的第一次迭代期间执行的,因此您只会得到第一个结果。您可以获得 ping 结果并将其附加到列表中,然后一旦循环完成,您就可以 return 该列表。
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)