You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下使用Python批量ping检测10.1.1.1~10.1.1.254主机连通性

Linux环境Python批量ping连通性检测实现

核心思路

调用Linux原生ping命令做探测,用多进程并发提速,避免单线程串行检测耗时过长,最终直接输出要求格式的结果。

可用代码

import subprocess
from multiprocessing import Pool

def check_host(ip):
    # 发送1个ICMP包,超时1秒,丢弃所有命令输出
    run_res = subprocess.run(
        ["ping", "-c", "1", "-W", "1", ip],
        stdout=subprocess.DEVNULL,
        stderr=subprocess.DEVNULL
    )
    if run_res.returncode == 0:
        print(f"the pc {ip} Pinging")
    else:
        print(f"the pc {ip} Not Pinging")

if __name__ == "__main__":
    # 生成10.1.1.1到10.1.1.254的IP列表
    ip_range = [f"10.1.1.{i}" for i in range(1, 255)]
    # 开20个并发进程,可根据自身设备性能调整数值
    with Pool(processes=20) as process_pool:
        process_pool.map(check_host, ip_range)

使用方法

  • 将上述代码保存为ping_scan.py
  • 在终端执行命令python3 ping_scan.py即可直接得到对应格式的检测结果

参数说明

  • ping命令参数-c 1:仅发送1个探测包,减少不必要的等待
  • ping命令参数-W 1:超时时间设为1秒,超过时长无回包直接判定不通
  • 并发进程数可调整,最高可设为254,数值越高整体检测速度越快,同时占用系统资源越多

如果需要严格按照IP从小到大的顺序输出结果,可以把检测结果先存入字典,全部检测完成后按IP排序再批量打印,避免并发导致的输出顺序混乱。

内容的提问来源于stack exchange,提问作者haymovich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 06:45:03