首页 > 代码库 > Python: ping网段内所有ip并返回结果

Python: ping网段内所有ip并返回结果

    今天用Python写了一段小代码,实现的功能是ping某一个网段的所有ip,然后将ping的结果提取出来,输出可以ping通的ip以及往返时间。

    初学Python,写得简陋,各位大侠多多指教。

  1. 正则表达式请根据自己的系统进行调整,我这个是中文win7下的结果

  2. Python3.3下测试没问题

  3. ping测试的过程中内存占用较大,不知道可以怎么改进


__author__ = ‘wucl‘

import subprocess, re, _thread, queue, time, threading

print(‘Ping Processing, Please Wait...‘)

regex=re.compile(‘最短 = (\d+)ms,最长 = (\d+)ms,平均 = (\d+)ms‘)
ipPrefix=‘192.168.1.‘
decoding=‘gbk‘

def ping(ip):
    p=subprocess.Popen([‘ping.exe‘,ip],stdout=subprocess.PIPE)
    out=p.stdout.read()
    result=regex.findall(out.decode(decoding))
    if result:
        printQueue.put(‘%15s    最短=%2dms,最长=%2dms,平均=%2dms‘ %(ip,int(result[0][0]),int(result[0][1]),int(result[0][2])))
        return (ip,result[0])

def resultPrint(printQueue):
    while True:
        try:
            data=http://www.mamicode.com/printQueue.get()>


本文出自 “载酒仗剑江湖行” 博客,请务必保留此出处http://wucl202000.blog.51cto.com/4687508/1433457