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

如何实现多行输入服务器名并执行批量ping测试?

修改后的Python Ping脚本实现多行输入主机名

以下是满足需求的修改方案,支持每行输入一个服务器名,并显示待测试主机数量:

import subprocess

def ping():
    print("请每行输入一个服务器名,输入空行结束输入:")
    server_names = []
    while True:
        line = input().strip()
        if not line:
            break
        server_names.append(line)
    
    # 输出测试数量提示
    print(f"您将对{len(server_names)}个客户端执行ping测试")
    
    for server in server_names:
        command = f"ping {server}"
        # 根据系统调整编码:Windows用gbk,Linux/macOS用utf-8
        output = subprocess.Popen(command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[0].decode('gbk')
        print(f"\n=== 测试主机:{server} ===")
        print(output)

ping()

关键改动说明:

  • 多行输入处理:通过循环读取每行输入,直到用户输入空行终止,解决大量主机名输入的不便
  • 空行过滤:用strip()去除每行首尾空白,空行直接终止输入,避免无效的空主机名测试
  • 数量提示:通过len(server_names)统计主机数量,输出需求中的提示语句
  • 输出优化:将subprocess返回的bytes类型结果解码为字符串,避免打印时出现乱码;添加测试主机标识,让输出更清晰
  • 补全依赖:添加import subprocess语句,原脚本遗漏了该导入会导致运行报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 09:25:32