首页 > 解决方案 > 使用 python 和 linux 对主机进行多次 ping

问题描述

我有一些问题。我在 Linux 中,我需要使用 python 一次检查 254 pc 的 ping,例如:

我的 IP 地址为 10.1.1.1 ... 10.1.1.254,我只需要检查我是否已使用 python 成功 ping 到这台电脑。

所以总输出应该是:

电脑 10.1.1.1 Ping

电脑 10.1.1.2 不 Ping

电脑 10.1.1.3 Ping

以此类推,直到 10.1.1.254

标签: pythonlinuxnetworkingping

解决方案


import subprocess


ips = ["192.168.1.{}".format(i) for i in range(1,255)]
mainList = set()
def ping(ips):
    for num,i in enumerate(ips):
        print(f'Searching Host {i}    Itration Number {num}')
        try:
            p = subprocess.Popen(['ping', '-c1', i], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
            p.communicate(timeout=(0.1))
        except subprocess.TimeoutExpired:
            pass
        else:
            print(f'***Host found - Add to array***')
            mainList.add(i)
    print(mainList)

ping(ips)

推荐阅读