python 判断网络连通的实现方法

作者:shijc_csdn 时间:2021-07-28 06:47:29 

开发中偶尔需要判断网络的连通性,没有什么方法比 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 的方案实现简单、快捷、有效。

来源:https://blog.csdn.net/shijichao2/article/details/53900200

标签:python,判断,网络,连通
0
投稿

猜你喜欢

  • Python学习笔记之图片人脸检测识别实例教程

    2021-12-03 06:17:28
  • MySQL数据库的自动备份与数据库被破坏后的恢复

    2010-03-18 15:30:00
  • 教你怎么使用sql游标实例分享

    2012-07-11 16:14:57
  • Python StringIO及BytesIO包使用方法解析

    2022-12-24 15:34:26
  • oracle10g 数据备份与导入

    2009-06-10 18:21:00
  • python中的集合及集合常用的使用方法

    2023-05-04 11:14:11
  • sql分类汇总及Select的自增长脚本

    2012-07-21 14:40:14
  • python常见读取语音的3种方法速度对比

    2021-03-08 11:12:33
  • 使用keras实现densenet和Xception的模型融合

    2022-04-15 19:17:01
  • Django分组聚合查询实例分享

    2023-08-07 21:44:16
  • SQL查询入门(上篇) 推荐收藏

    2011-09-30 11:47:11
  • Python3 assert断言实现原理解析

    2023-06-11 20:39:33
  • CSS结合js实现动态更换皮肤

    2007-07-14 10:01:00
  • 网页表单项Input的高级限制级用法

    2008-10-27 16:50:00
  • asp检测文件编码方法

    2007-10-03 14:27:00
  • Excel和Access之间的数据交换

    2008-11-20 16:53:00
  • 基于Python绘制3D立体爱心图案的示例详解

    2021-04-03 18:05:09
  • 基于python实现把json数据转换成Excel表格

    2021-02-20 05:22:04
  • Python统计可散列的对象之容器Counter详解

    2023-09-23 18:30:50
  • windows环境下tensorflow安装过程详解

    2021-12-10 15:59:34
  • asp之家 网络编程 m.aspxhome.com