gpt4 book ai didi

python - 难以使用 Python 在未预授权的主机上实现 ping/延迟功能

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:07 26 4
gpt4 key购买 nike

我制作了一个 web 应用程序 (python/django),它可以 ping 不同的服务器并返回 ping 值。这是 Link .

它有一个 pingserver(ip,sev) 函数,它使用 os/system fping(可以与/bin/ping 一起使用)来获取输出并剥离以获取值。

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)

它在我的本地服务器上运行良好,但代码在托管机器上不起作用,因为“/bin/fping”没有退出。我无法执行以下操作:

  1. 安装 fping 或 ping(我在服务器上没有 root 权限)

  2. 不能使用 pyping(需要 root 才能创建原始套接字)

  3. 不能使用 ping/fping 可执行文件(需要 root 权限)

  4. 不能使用 http.connnection.request 或类似的(我需要准确的 ping 值;而不是有关服务器启动或关闭的信息)

所以我的问题是如何在这些情况下获得 ping/延迟,以便我的代码正常运行。(任何与代码重写或库使用相关的建议都将受到赞赏)

最佳答案

ping 似乎有潜在的安全问题,因此 PythonAnywhere 不允许您运行它。但是你可以打开类似

的东西
time nc -zw400 <host> <port>

(为 time 命令使用 bash shell)获取延迟统计信息

关于python - 难以使用 Python 在未预授权的主机上实现 ping/延迟功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53474606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com