python3实现多线程ping一个网段

发布时间:2019-09-26 07:32:38编辑:auto阅读(2172)

    ####################################################

    """

     实现多线程ping一个网段的地址,测试联通性

     copyright  2016/9/30 lighter_py

    """

    ####################################################


    import os

    import queue

    import threading

     


    class Pinger(threading.Thread):

    def __init__(self,queue,pingIp,pingCoint=1):

    threading.Thread.__init__(self)

    self.queue = queue

    self.pingIp = pingIp

    self.pingCount = 1

    def run(self):

    pingResult = os.popen('ping -n' + ' ' + str(self.pingCount) + ' ' +self.pingIp).read()

    if '无法访问目标主机' not in pingResult:

    print(self.pingIp,'\t is online')

    self.queue.get()


    class creatpinger:

    def __init__(self,queue,pingIpParagraph,allcount=255,pingCount=1):

    self.queue = queue

    self.pingIpParagraph = pingIpParagraph

    self.allcount = allcount

    self.pingCount = 1

    self.create()

    def create(self):

    for i in range(1,self.allcount+1):

    self.queue.put( i )

    Pinger(self.queue,self.pingIpParagraph+str(i),self.pingCount).start()


    if __name__ == '__main__':

    creatpinger(queue.Queue(100),'192.168.1.')


关键字