python 判断网络连通的实现方法
开发中偶尔需要判断网络的连通性,没有什么方法比 ping 更直接了当,通常检查网络情况都是运行命令ping www.baidu.com ,查看输出信息即可。
C:\Users>ping www.baidu.com 正在 Ping www.baidu.com [61.135.169.125] 具有 32 字节的数据: 来自 61.135.169.125 的回复: 字节=32 时间=4ms TTL=57 来自 61.135.169.125 的回复: 字节=32 时间=7ms TTL=57 来自 61.135.169.125 的回复: 字节=32 时间=9ms TTL=57 来自 61.135.169.125 的回复: 字节=32 时间=9ms TTL=57 61.135.169.125 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 4ms,最长 = 9ms,平均 = 7ms
简单方法
python执行批处理用多种方法,考虑到我们仅仅用于验证网络连通性,只需要最终的结果,os.system()方法最合适,执行cmd命令,并返回进程执行退出错误码。
import os exit_code = os.system('ping www.baidu.com') if exit_code: raise Exception('connect failed.')
网络连通 exit_code == 0,否则返回非0值。
高级方法
获取访问域名的IP地址。正则表达式提取 [61.135.169.125] 数据。
获取网络实际连通的情况。正则表达式提取 TTL 和 时间 判断当前的网络状况。
使用 subprocess 管道调用的方式获取控制台输出信息,然后在使用正则表达式提取关键数据。
小结
相比其他方法判断网络连通性,命令行执行 ping 的方案实现简单、快捷、有效。
以上这篇python 判断网络连通的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
django inspectdb 操作已有数据库数据的使用步骤
这篇文章主要介绍了django inspectdb 操作已有数据库数据的使用步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-02-02详解Python如何利用Pandas与NumPy进行数据清洗
许多数据科学家认为获取和清理数据的初始步骤占工作的 80%,花费大量时间来清理数据集并将它们归结为可以使用的形式。本文将利用 Python 的 Pandas和 NumPy 库来清理数据,需要的可以参考一下2022-04-04封装 Python 时间处理库创建自己的TimeUtil类示例
这篇文章主要为大家介绍了封装 Python 时间处理库创建自己的TimeUtil类示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪2023-05-05
最新评论