我如何一次ping所有服务器python

时间:2016-05-23 15:01:23

标签: python python-2.7 ping

import pyping

server = ["jeff", "bob", "dave", "ryan", "drew"]

for i in server:
    online = 1
    try:
        result = pyping.ping(i)
        online = result.ret_code
        if len(i) > 7:
            print("|\tServer: "+ i +"\tIp: "+ result.destination_ip +"\tTime: "+ result.avg_rtt +"\t |")
        else:
            print("|\tServer: "+ i +"\t\tIp: "+ result.destination_ip +"\tTime: "+ result.avg_rtt +"\t |")

    except:
        print("|\tServer: "+ i +" Returned: OFFLINE!!!\t\t\t\t |")

请帮我同时ping所有服务器以加快速度

1 个答案:

答案 0 :(得分:1)

试试这个

import threading

def worker(i):
    online = 1
    try:
        result = pyping.ping(i)
        online = result.ret_code
        if len(i) > 7:
            print("|\tServer: "+ i +"\tIp: "+ result.destination_ip +"\tTime: "+ result.avg_rtt +"\t |")
        else:
            print("|\tServer: "+ i +"\t\tIp: "+ result.destination_ip +"\tTime: "+ result.avg_rtt +"\t |")

    except:
        print("|\tServer: "+ i +" Returned: OFFLINE!!!\t\t\t\t |")

server = ["jeff", "bob", "dave", "ryan", "drew"]

for i in server:
    t = threading.Thread(target=worker, args=(i,))
    t.start()