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 判断网络连通的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
python使用socket进行简单网络连接的方法
本文实例讲述了python使用socket进行简单网络连接的方法.分享给大家供大家参考.具体如下: import socket print "Creating socket...", s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print "done." print "Connecting to www.jb51.net", s.connect(("www.jb51.net
-
Python测试网络连通性示例【基于ping】
本文实例讲述了Python测试网络连通性.分享给大家供大家参考,具体如下: Python代码 #!/usr/bin/python # -*- coding:GBK -*- """Document: network script, keep network always working, using python3""" import os import time PING_RESULT = 0 NETWORK_RESULT = 0 def Dis
-
Python实现ping指定IP的示例
贴代码: import os import sys iplist = list() ip = '192.168.1.11' # ip = '172.24.186.191' ip = 'www.baidu.com' backinfo = os.system('ping -c 1 -w 1 %s'%ip) # 实现pingIP地址的功能,-c1指发送报文一次,-w1指等待1秒 print 'backinfo' print backinfo print type(backinfo) if backin
-
利用python获取Ping结果示例代码
前言 本文主要跟大家分享了关于利用python获取Ping结果的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍吧. 示例代码: # -*- coding: utf-8 -*- import subprocess import re def get_ping_result(ip_address): p = subprocess.Popen(["ping.exe", ip_address], stdin = subprocess.PIPE, stdout = subp
-
Python socket网络编程TCP/IP服务器与客户端通信
Python socket网络编程 初学 python,前段时间买了两本书<python 编程从入门到实践><Python 核心编程第三版>,第一本书主要讲的是一些基本语法和一些基本的使用方法,而第二本则深入很多,自己看来也是一知半解,刚好看到了这部分网络编程,依然有好多不太理解的地方,不过想来通过自己不断的摸索,不断地搜寻资料学习,早晚应该会变得通透吧....... 这部分主要使用的模块就是 socket 模块,在这个模块中可以找到 socket()函数,该函数用于创建套接字对象
-
利用Python脚本实现ping百度和google的方法
Ping服务 ping 是基于 XML_RPC 标准协议的更新通告服务,用于Blog把内容更新快速通知给搜索引擎,以便搜索引擎及时进行抓取和更新. 计算机就相当于 RPC Client ,用于向 RPC Server 发起请求,并接受方法的执行结果. Python实现方法 Python 内置了 XMLRPClib ,可以很方便地处理XMLRPC协议,免去了封包解包的麻烦. 用法很简单,首先导入库: import xmlrpclib 生成xmlrpc服务器对象: sever = xmlrpclib
-
python网络编程之TCP通信实例和socketserver框架使用例子
1.TCP是一种面向连接的可靠地协议,在一方发送数据之前,必须在双方之间建立一个连接,建立的过程需要经过三次握手,通信完成后要拆除连接,需要经过四次握手,这是由TCP的半关闭造成的,一方在完成数据发送后要发送一个FIN来终止这个方向的连接,一个TCP连接在收到一个FIN后仍能发送数据,但应用程序很少这么做,下面是TCP连接建立和拆除的过程: 2.python可以实现TCP服务器和客户端的编程,下面是代码: 服务器端: 复制代码 代码如下: #!/usr/bin/env pythonimport
-
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
UDP广泛应用于需要相互传输数据的网络应用中,如QQ使用的就是UDP协议.在网络质量不好的情况下,使用UDP协议时丢包现象十分严重,但UDP占用资源少,处理速度快,UDP依然是传输数据时常用的协议. 下面是用python实现UDP服务器的代码: 复制代码 代码如下: #!/usr/bin/env pythonimport socketaddress=('127.0.0.1',10000)s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)s.bind
-
Python实现检测服务器是否可以ping通的2种方法
好想在2014结束前再赶出个10篇博文来,~(>_<)~,不写博客真不是一个好兆头,至少说明对学习的欲望和对知识的研究都不是那么积极了,如果说这1天的时间我能赶出几篇精致的博文,你们信不信,哈哈,反正我是信了... python检测服务器是否ping通的2种方法 1.第一种比较挫,就是用ping,python调用shell,这个适用于较少的服务器数量,几百台已经很慢了(当然是说python同步的方法,要是nodejs异步方式还是很快的,但是nodejs CPU计算不行,所以尝试了下只能200台
-
python实现ping的方法
本文实例讲述了python实现ping的方法.分享给大家供大家参考.具体如下: #!/usr/bin/env python #coding:utf-8 import os, sys, socket, struct, select, time # From /usr/include/linux/icmp.h; your milage may vary. ICMP_ECHO_REQUEST = 8 # Seems to be the same on Solaris. def checksum(sou
-
Python实现快速多线程ping的方法
本文实例讲述了Python实现快速多线程ping的方法.分享给大家供大家参考.具体如下: #!/usr/bin/python #_*_coding:utf-8_*_ # ''' 名称:快速多线程ping程序 开发:gyhong gyh9711 日期:20:51 2011-04-25 ''' import pexpect import datetime from threading import Thread host=["192.168.1.1","192.168.1.123
随机推荐
- PHP开发者常犯的10个MySQL错误更正剖析
- ASP.NET文本框密码赋默认值的方法
- iOS图片拉伸技巧(iOS5.0、iOS6.0)
- 深入讲解iOS开发中应用数据的存储方式
- Python中MySQLdb和torndb模块对MySQL的断连问题处理
- Android仿水波纹流量球进度条控制器
- javascript或asp实现的判断身份证号码是否正确两种验证方法
- php中判断文件存在是用file_exists还是is_file的整理
- 微信小程序 滚动到某个位置添加class效果实现代码
- Powershell直接脚本时出现无法加载文件因为禁止执行脚本
- Python批量修改文件后缀的方法
- C++之CNoTrackObject类和new delete操作符的重载实例
- Linux中利用Vim对文件进行密码保护的方法详解
- Java 插入排序之希尔排序的实例
- 解析android中的帮助、about、关于作者、HELP等提示页面
- node.js中的console.assert方法使用说明
- 3DMark使用图文详解 --显卡测试软件
- select获取下拉框的值 下拉框默认选中方法
- iOS开发之XLForm的使用方法
- Python通过Manager方式实现多个无关联进程共享数据的实现