如何用python来对远程的ip连通情况进行验证?
近期有一个小需求,通过python验证远程3台服务器的ip地址是否可连通。
服务器网络情况可以分为3种
1、正常连通情况,能返回相应的延迟好和丢包率,这是最正常的情况了;
2、网络断断续续,有timeout,也有ping通的情况,延迟高,不稳定;
3、完全无法连通,就是timeout了。
之前用了第三方模块
https://github.com/zhengxiaow...
看他例子最后面的一段代码
import subprocess as sp# Print the return code (status=0 mean ping success)
status = sp.call(['tcping', '-c', '1', '-t', '1', 'github.com'], stdout=sp.DEVNULL, stderr=sp.DEVNULL)
print(status)
# OR print the full message
status = sp.run(['tcping', '-c', '1', '-t', '1', 'github.com'], stdout=sp.DEVNULL, stderr=sp.DEVNULL)
print(status)
不管我把github.com替换成可访问的域名和ip 还是 不可访问的域名和ip 他都返回0,这个0是代表连通成功的意思,我现在也没啥思路。
各位看看我这个情况应该如何处理?
其实我就想通过轮询不同的ip地址 来确定我们应该连接哪个ip是最优的选择。
回答:
返回0的原因可能是你本机没有 tcping 这个程序,我看它脚本就只是调用了tcping这个程序。
tcping这个程序系统是没有带的,一般需要自己手动安装一下。
其实它的思路很简单,就是拿到这些程序的输出。你自己也可以按照需求,调用其他的程序,拿程序的执行结果,可以选ping或者tcping。
import os
cc = os.popen(“ping -c 3 127.0.0.1”)
result = cc.read()
print(result)
——
编辑一下,刚刚写的时候没注意到github上的tcping和我理解的tcping是不一样的:),但是也都差不多。
以上是 如何用python来对远程的ip连通情况进行验证? 的全部内容, 来源链接: utcz.com/p/938311.html