对大量ip进行批量ping检测的python脚本

对大量ip进行批量ping检测的python脚本

ping_test.py

import subprocess


def ping_host(host, is_windows):
    """
    发送一个ping请求到指定的主机,并返回ping的结果。
    """
    # 根据操作系统类型选择ping命令和参数
    if is_windows:
        params = ['ping', '-n', '1', host]
    else:
        params = ['ping', '-c', '1', host]

        # 发送ping请求并获取输出
    result = subprocess.run(params, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
    output = result.stdout + result.stderr

    # 分析ping输出
    if is_windows:
        # 对于Windows系统,检查是否有"请求超时"这样的输出
        return "请求超时" not in output
    else:
        # 对于UNIX-like系统,检查是否有"64 bytes from"或"0% packet loss"这样的输出
        return ("64 bytes from" in output) or ("0% packet loss" in output) or (not output)

    # 显示操作系统选择菜单


print("请选择您的操作系统:")
print("1. Windows")
print("2. Linux/macOS")

# 获取用户输入
choice = input("请输入对应的序号:")

# 根据用户输入确定操作系统类型
is_windows = choice == "1"

# 读取iplist.txt文件中的IP地址,"iplist.txt"换成自己的ip字典文件的文件名
with open('iplist.txt', 'r') as file:
    ips = file.read().splitlines()

# 对每个IP地址执行ping操作,并输出结果
for ip in ips:
    if ping_host(ip, is_windows):
        print(f"ping {ip} 是通的")
    else:
        print(f"ping {ip} 不通")
注意:
# 读取iplist.txt文件中的IP地址,"iplist.txt"需换成自己的ip字典文件的文件名
with open('iplist.txt', 'r') as file:
    ips = file.read().splitlines()

效果展示:

 

posted @ 2024-04-18 12:05  hkgan  阅读(368)  评论(0编辑  收藏  举报