Python基于多線程實(shí)現(xiàn)ping掃描功能示例
本文實(shí)例講述了Python基于多線程實(shí)現(xiàn)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-------------------'
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python進(jìn)程與線程操作技巧總結(jié)》、《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- Python測(cè)試網(wǎng)絡(luò)連通性示例【基于ping】
- Python實(shí)現(xiàn)ping指定IP的示例
- 使用python編寫(xiě)udp協(xié)議的ping程序方法
- 利用python獲取Ping結(jié)果示例代碼
- python使用arcpy.mapping模塊批量出圖
- 利用Python腳本實(shí)現(xiàn)ping百度和google的方法
- 詳解duck typing鴨子類(lèi)型程序設(shè)計(jì)與Python的實(shí)現(xiàn)示例
- Python實(shí)現(xiàn)快速多線程ping的方法
- python實(shí)現(xiàn)ping的方法
- python使用xmlrpclib模塊實(shí)現(xiàn)對(duì)百度google的ping功能
- python在windows下實(shí)現(xiàn)ping操作并接收返回信息的方法
- Python實(shí)現(xiàn)檢測(cè)服務(wù)器是否可以ping通的2種方法
- Python檢查ping終端的方法
相關(guān)文章
python3安裝OCR識(shí)別庫(kù)tesserocr過(guò)程圖解
這篇文章主要介紹了python3安裝OCR識(shí)別庫(kù)tesserocr過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04Python實(shí)現(xiàn)npy/mat文件的保存與讀取
除了常用的csv文件和excel文件之外,我們還可以通過(guò)Python把數(shù)據(jù)保存文npy文件格式和mat文件格式。本文為大家展示了實(shí)現(xiàn)npy文件與mat文件的保存與讀取的示例代碼,需要的可以參考一下2022-04-04python 和c++實(shí)現(xiàn)旋轉(zhuǎn)矩陣到歐拉角的變換方式
今天小編就為大家分享一篇python 和c++實(shí)現(xiàn)旋轉(zhuǎn)矩陣到歐拉角的變換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12初學(xué)者學(xué)習(xí)Python好還是Java好
在本篇文章里小編給大家分享的是關(guān)于初學(xué)者學(xué)習(xí)Python好還是Java好的相關(guān)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2020-05-05關(guān)于使用python對(duì)mongo多線程更新數(shù)據(jù)
這篇文章主要介紹了關(guān)于使用python對(duì)mongo多線程更新數(shù)據(jù),文中提供了詳細(xì)的代碼說(shuō)明,實(shí)際使用時(shí),需要根據(jù)具體情況進(jìn)行調(diào)整和優(yōu)化,需要的朋友可以參考下2023-04-04簡(jiǎn)單總結(jié)Python中序列與字典的相同和不同之處
這篇文章主要介紹了Python中序列與字典的相同和不同之處,序列這里講到Python中最常用的列表和元組以及字典三種,需要的朋友可以參考下2016-01-01Python如何使用cv2.canny進(jìn)行圖像邊緣檢測(cè)
這篇文章主要介紹了Python如何使用cv2.canny進(jìn)行圖像邊緣檢測(cè)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01Python+AutoIt實(shí)現(xiàn)界面工具開(kāi)發(fā)過(guò)程詳解
這篇文章主要介紹了Python+AutoIt實(shí)現(xiàn)界面工具開(kāi)發(fā)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08