我正在用python中的ping做一个简单的ip扫描。我可以并行运行命令,如thisanswer中所示。但是,我不能禁止输出,因为它使用Popen,我不能使用check_output,因为如果主机在某个ip地址关闭,进程返回的退出状态为2,这对于大多数地址都是这样。使用管道也是不可能的,因为有太多的进程同时运行。你知道吗
有没有一种方法可以在抑制输出的同时在python中并发运行这些子进程?以下是我的代码供参考:
def ICMP_scan(root_ip):
host_list = []
cmds = [('ping', '-c', '1', (root_ip + str(block))) for block in range(0,256)]
try:
res = [subprocess.Popen(cmd) for cmd in cmds]
for p in res:
p.wait()
except Exception as e:
print(e)
将流程输出管道化到
/dev/null
怎么样。你知道吗基于this answer:
相关问题 更多 >
编程相关推荐