Python实现快速多线程ping的方法


Posted in Python onJuly 15, 2015

本文实例讲述了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","192.168.2.1",
"192.168.1.1","192.168.1.123","192.168.2.1",
"192.168.1.1","192.168.1.123","192.168.2.1",
"192.168.1.1","192.168.1.123","192.168.2.1",
"192.168.1.1"]
report_ok=[]
report_error=[]
class PING(Thread):
  def __init__(self,ip):
    Thread.__init__(self)
    self.ip=ip
  def run(self):
    Curtime = datetime.datetime.now()  
    #Scrtime = Curtime + datetime.timedelta(0,minute,0) 
    #print("[%s]主机[%s]" % (Curtime,self.ip))
    ping=pexpect.spawn("ping -c1 %s" % (self.ip))
    check=ping.expect([pexpect.TIMEOUT,"1 packets transmitted, 1 received, 0% packet loss"],2)
    if check == 0:
      print("[%s] 超时 %s" % (Curtime,self.ip))
    elif check == 1:
      print ("[%s] %s 可达" % (Curtime,self.ip))
    else:
      print("[%s] 主机%s 不可达" % (Curtime,self.ip))
#多线程同时执行
T_thread=[]
for i in host:
  t=PING(i)
  T_thread.append(t)
for i in range(len(T_thread)):
  T_thread[i].start()
#
#print ("\n=========问题主机情况如下==========\n")
#output(report_error)
#print ("\n=========正常主机情况如下==========\n")
#output(report_ok)

执行结果:

administrator@nagios:/win/pexpect$ ./ping.py
[2011-04-25 21:30:22.126981] 192.168.1.1 可达
[2011-04-25 21:30:22.148376] 192.168.1.1 可达
[2011-04-25 21:30:22.179846] 192.168.1.1 可达
[2011-04-25 21:30:22.203691] 192.168.1.1 可达
[2011-04-25 21:30:22.227696] 192.168.2.1 可达
[2011-04-25 21:30:22.134049] 超时 192.168.1.123
[2011-04-25 21:30:22.145610] 超时 192.168.2.1
[2011-04-25 21:30:22.157558] 超时 192.168.1.123
[2011-04-25 21:30:22.167898] 超时 192.168.2.1
[2011-04-25 21:30:22.197572] 超时 192.168.1.123
[2011-04-25 21:30:22.202430] 超时 192.168.2.1
[2011-04-25 21:30:22.215561] 超时 192.168.1.123
[2011-04-25 21:30:22.229952] 超时 192.168.1.1

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python转码问题的解决方法
Oct 07 Python
Python中的并发编程实例
Jul 07 Python
Django中Model的使用方法教程
Mar 07 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
Jun 13 Python
Python列表解析配合if else的方法
Jun 23 Python
python查看列的唯一值方法
Jul 17 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
Dec 19 Python
详解python常用命令行选项与环境变量
Feb 20 Python
python实现QQ邮箱发送邮件
Mar 06 Python
使用opencv中匹配点对的坐标提取方式
Jun 04 Python
Python 开发工具通过 agent 代理使用的方法
Sep 27 Python
Python运算符+与+=的方法实例
Feb 18 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
Jul 15 #Python
Python的Django框架中if标签的相关使用
Jul 15 #Python
在Python的Django框架中调用方法和处理无效变量
Jul 15 #Python
python实现判断数组是否包含指定元素的方法
Jul 15 #Python
python获取元素在数组中索引号的方法
Jul 15 #Python
Django框架中方法的访问和查找
Jul 15 #Python
Python的Django框架中的Context使用
Jul 15 #Python
You might like
php sprintf()函数让你的sql操作更安全
2008/07/23 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
php实现计数器方法小结
2015/01/05 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
js自带函数备忘 数组
2006/12/29 Javascript
jquery提升性能最佳实践小结
2010/12/06 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
JSON相关知识汇总
2015/07/03 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
vue 计时器组件的实现代码
2017/09/14 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
2019/09/17 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
python 中文乱码问题深入分析
2011/03/13 Python
Python for Informatics 第11章 正则表达式(一)
2016/04/21 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
Python爬虫requests库多种用法实例
2020/05/28 Python
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
一体化教学实施方案
2014/05/10 职场文书
初中家长评语大全
2014/12/26 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
在职人员跳槽求职信
2015/03/20 职场文书
公司门卫岗位职责
2015/04/13 职场文书
python中取整数的几种方法
2021/11/07 Python
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技