gpt4 book ai didi

python - 在 python 中跟踪多台主机

转载 作者:太空宇宙 更新时间:2023-11-04 10:53:37 24 4
gpt4 key购买 nike

我正在编写一个脚本来对主机名列表进行路由跟踪。我想做的是逐行从文本文件中读取主机名,使用子进程为每个主机执行 tracert,并将结果写入另一个文件。这是我的代码

    # import subprocess
import subprocess
# Prepare host and results file
Open_host = open('c:/OSN/host.txt','r')
Write_results = open('c:/OSN/TracerouteResults.txt','a')
host = Open_host.readline()
# while loop: excuse trace route for each host
while host:
print host
# execute Traceroute process and pipe the result to a string
Traceroute = subprocess.Popen(["tracert", '-w', '100', host],
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
while True:
hop = Traceroute.stdout.readline()
if not hop: break
print '-->',hop
Write_results.write( hop )
Traceroute.wait()
# Reading a new host
host = Open_host.readline()
# close files
Open_host.close()
Write_results.close()

我的问题是此脚本仅适用于具有 1 个主机名(或 1 行)的主机文件。当主机文件包含多行时,例如:主机名1.com主机名2.comhostname3.com 它会给我第一两行的通知

“无法解析目标系统名称 hostname1.com”

“无法解析目标系统名称 hostname2.com”

并且只给出最后一行的tracert结果。

我不确定我的脚本有什么问题,请帮助我修复它。非常感谢。

史蒂文

最佳答案

在调用之前尝试host = host.strip(); tracert 似乎对换行感到窒息。

关于python - 在 python 中跟踪多台主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11862930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com