首页 > 解决方案 > 使用 DEVNULL 等抑制输出/CMD 后,Ping 在 Windows 上不起作用

问题描述

我是 Python 新手-我尝试了在帖子中共享的用于 ping / multi-ping 的代码,但不幸的是它对我不起作用(共享我在下面运行的实际代码)。

注意-但是,只要我不抑制输出(例如使用 DEVNULL 和其他技术),它就可以正常工作

平台 - Windows 10 机器类型 - 托管在 AWS 云上的虚拟机。

我不确定该 VM 是否实际上限制了代码的潜力,但请您提供专家建议 - 如果可能,请您指导/分享解决方法以抑制输出。

另外,我想知道是否可以使用 OS.SYSTEM 来抑制输出,因为它工作正常,但不确定在抑制输出后也会停止。

议程 - 最终目标是在不显示命令提示符窗口的情况下 ping 多个 IP。

谢谢。

代码:

def ping(self):
    fOPEN = open('IP_List.txt')
    for IP_ADD in fOPEN:
        IP_ADD = IP_ADD.strip()
        status = subprocess.call(["ping", "-n", "1", "-w", "200", IP_ADD], stdout=subprocess.DEVNULL)

        if status == 0:
            print(IP_ADD + " -> Reachable\n")
        else:
            print(IP_ADD + " -> NOT Reachable\n")

标签: python-3.x

解决方案


推荐阅读