python测试网络可达性的方法
1、ping连通性测试
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import os,sys,re
import subprocess def NetCheck(ip):
try:
p = subprocess.Popen(["ping -c 1 -W 1 "+ ip],stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)
out=p.stdout.read()
#err=p.stderr.read()
regex=re.compile('100% packet loss')
#print out
#print regex
#print err
if len(regex.findall(out)) == 0:
print ip + ': host up'
return 'UP'
else:
print ip + ': host down'
return 'DOWN'
except:
print 'NetCheck work error!'
return 'ERR' ip1="2.3.2.2"
domain1="www.baidu.com"
NetCheck(ip1)
NetCheck(domain1)
或者:连通返回0,不通返回512
 >>> ret1=os.system('ping -c 2 -W 1 114.114.114.14')
 PING 114.114.114.14 (114.114.114.14): 56 data bytes
 Request timeout for icmp_seq 0
 --- 114.114.114.14 ping statistics ---
 2 packets transmitted, 0 packets received, 100.0% packet loss
 >>> ret1
 512
 >>> ret1=os.system('ping -c 2 -W 1 114.114.114.114')
 PING 114.114.114.114 (114.114.114.114): 56 data bytes
 --- 114.114.114.114 ping statistics ---
 2 packets transmitted, 2 packets received, 0.0% packet loss, 2 packets out of wait time
 round-trip min/avg/max/stddev = 27.535/31.029/34.523/3.494 ms
 >>> ret1
 0
 >>>
2、http(s)连通性测试
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import urllib2
1 def http_validate(target_url):
try:
urllib2.urlopen(target_host)
return True
except:
return False url1 = 'https://www.baidu.com'
url2 = 'http://www.baudi.com' if http_validate(url1):
print "可达"
else:
print "不可达" if http_validate(url2):
print "可达"
else:
print "不可达"
参考:
1、http://dgd2010.blog.51cto.com/1539422/1865925
2、http://blog.csdn.net/wyzxg/article/details/40048445
python测试网络可达性的方法的更多相关文章
- Netbackup客户端安装网络放通端口需求,及测试网络放通方法
		192.168.1.101网络放通需求如下: 客户端主机 192.168.1.101 到 服务端主机 192.168.1.100 的1556.13720.13724.1378.13782这5个 ... 
- NO.7:自学python之路------类的方法、异常处理、socket网络编程
		引言 我visual studio 2017就算体积巨大.启动巨慢.功能简陋也不会安装PyCharm的,嘿呀,真香.好吧,为了实现socket网络编程,更换了软件. 正文 静态方法 只是在名义上归类管 ... 
- 基于Python的XSS测试工具XSStrike使用方法
		基于Python的XSS测试工具XSStrike使用方法 简介 XSStrike 是一款用于探测并利用XSS漏洞的脚本 XSStrike目前所提供的产品特性: 对参数进行模糊测试之后构建合适的payl ... 
- python 方法无法在线程中使用(附python获取网络流量)
		在python中,定义一个方法,直接调用可以,但是创建一个线程来调用就可能导致失败.这种现象多出现在使用com对象进行系统操作时,而且是以线程的形式调用. 异常提示如下:syntax error.WM ... 
- python之网络编程
		本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道.FIFO.消息队列) 同步(互斥量.条件变量.读写锁.文件和写记录锁.信号量) 共享内存(匿名的和具名的) 远程过程调用 ... 
- Python即时网络爬虫项目启动说明
		作为酷爱编程的老程序员,实在按耐不下这个冲动,Python真的是太火了,不断撩拨我的心. 我是对Python存有戒备之心的,想当年我基于Drupal做的系统,使用php语言,当语言升级了,推翻了老版本 ... 
- Python即时网络爬虫:API说明
		API说明——下载gsExtractor内容提取器 1,接口名称 下载内容提取器 2,接口说明 如果您想编写一个网络爬虫程序,您会发现大部分时间耗费在调测网页内容提取规则上,不讲正则表达式的语法如何怪 ... 
- Python测试     ——开发工具库
		Web UI测试自动化 splinter - web UI测试工具,基于selnium封装. selenium - web UI自动化测试. mechanize- Python中有状态的程序化Web浏 ... 
- 面试问题整理之python测试
		1.下列哪个语句在Python中是非法的? A.x = y = z =1 B.x = (y = z + 1) C.x, y = y, x D.x += y 答案:B 2.关于Python内存管理,下列 ... 
随机推荐
- 直接选择排序(java)
			直接选择排序的逻辑非常简单,数组{A1.......An} 先在{A1........An}去获取最小的 与A1交换位置 然后在{A2..........An}中取出最小的 与A2交换位置. ... 
- 发行说明 - Kafka - 版本1.0.0
			发行说明 - Kafka - 版本1.0.0 以下是Kafka 1.0.0发行版中解决的JIRA问题的摘要.有关该版本的完整文档,入门指南以及有关该项目的信息,请参阅Kafka项目网站. 有关升级的注 ... 
- iOS-绘制UIView之drawCGRect
			写在前面 UIView对于iOS开发来讲,再熟悉不过了.也正是因为这一点,我们可能会忽略UIView一些特有方法的理解和使用.今天,笔者主要整理一下对drawRect方法的理解和使用. 默认情况下,该 ... 
- hibernate运行常见错误
			错误一: Exception in thread "main" org.hibernate.MappingException: Could not determine type f ... 
- vim configure
			vim configure .vimrc " An example for a vimrc file. " " Maintainer: Bram Moolenaar &l ... 
- python3的cookielib
			http://stackoverflow.com/questions/8405096/python-3-2-cookielib 
- 【14】redux 之  redux-actions
			redux-actions有两大法宝createAction和handleActions. createAction http://www.jianshu.com/p/6ba5cd795077 原来创 ... 
- 7天学习opengl入门
			http://blog.csdn.net/slience_perseverance/article/details/8096233 10月13号下午3:00队长给我开了一个会,10.14号开始学习op ... 
- android中与Adapter相关的控件----ListView
			ListView讲解: 一.ListView这个控件是一个使用非常广泛的控件,值得深入的学习和研究.基本使用已经在Adapter中使用过了 二.常用的属性和方法 footerDividersEnabl ... 
- layui 的Tab选项卡
			http://www.layui.com/doc/element/tab.html <#--start--> <div class="layui-tab layui-tab ... 
