我制作了一个webapp(python/django),它ping不同的服务器并返回ping值。 这是Link。你知道吗
它有一个pingserver(ip,sev)函数,它使用os/system fping(可以与/bin/ping一起使用)来获取输出,并使用strip来获取值。你知道吗
def pingserver(ip,sev):
ping_response = subprocess.Popen(["/usr/bin/fping","-c1","-t400",ip], stdout=subprocess.PIPE).stdout.read()
latency = str(ping_response)
ping_value=latency.split('ms')[0].split(',')[-1]
if len(ping_value) <= 3:
return(sev,'unknown')
else:
return(sev,ping_value)
它在我的localserver中运行良好,但代码在托管计算机中不工作,因为“/bin/fping”不退出。 我无法做到以下几点:
安装fping或ping(我在服务器上没有root权限)
无法使用pyping(创建原始套接字需要根)
无法使用ping/fping可执行文件(需要root权限)
无法使用http.CONNECTION.request请求或类似的(我需要确切的ping值;而不是服务器启动或关闭的信息)
所以我的问题是在这种情况下如何获得ping/延迟,以便我的代码能够正常工作。 (如有任何与代码重设或图书馆使用有关的建议,我们将不胜感激)
ping似乎有潜在的安全问题,所以PythonAnywhere不允许您运行它。但你可以像这样
(对
time
命令使用bashshell)来获取延迟状态相关问题 更多 >
编程相关推荐