加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python基于多线程实现ping扫描功能示例

发布时间:2020-12-16 21:08:53 所属栏目:Python 来源:网络整理
导读:本篇章节讲解Python基于多线程实现ping扫描功能。供大家参考研究具体如下: # -*- coding:utf-8 -*-#! python2import subprocessfrom Queue import Queueimport threadingclass Pinger(object): def __init__(self,ip_list,thread_num=2): self._i

本篇章节讲解Python基于多线程实现ping扫描功能。分享给大家供大家参考,具体如下:

# -*- coding:utf-8 -*-
#! python2
import subprocess
from Queue import Queue
import threading
class Pinger(object):
  def __init__(self,ip_list,thread_num=2):
    self._ip_list = ip_list
    self._thread_num = thread_num
    self._queue = Queue(len(ip_list))
  def ping(self,thread_id):
    while True:
      if self._queue.empty():
        break
      addr = self._queue.get()
      print 'Thread %s: Ping %s' % (thread_id,addr)
      ret = subprocess.call('ping -c 1 %s' % (addr),shell=True,stdout=open("/dev/null",'w'),stderr=subprocess.STDOUT)
      if ret == 0:
        print '%s: is still alive' % addr
      else:
        print '%s: did not respond ' % addr
      self._queue.task_done() #unfinished tasks -= 1
  def run(self):
    for ip in self._ip_list:
      self._queue.put(ip) #unfinished_tasks += 1
    print '---------------------task begin------------------'
    for i in range(self._thread_num):
      thrd = threading.Thread(target=self.ping,args=(i + 1,))
      #thrd.setDaemon(True)
      thrd.start()
    self._queue.join() # 主线程一直阻塞,一直等到Queue.unfiinshed_tasks == 0
    print '---------------------task done-------------------'

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python进程与线程操作技巧总结》、《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

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

您可能感兴趣的文章:

  • Python实现快速多线程ping的方法
  • Python实现检测服务器是否可以ping通的2种方法
  • python实现ping的方法
  • python在windows下实现ping操作并接收返回信息的方法
  • 利用python获取Ping结果示例代码
  • 利用Python脚本实现ping百度和google的方法
  • Python实现ping指定IP的示例
  • python多线程threading.Lock锁用法实例
  • 详解Python中的多线程编程
  • Python中多线程thread与threading的实现方法
  • 浅析Python中的多进程与多线程的使用

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读