同时运行多个traceroutes

时间:2017-11-03 16:03:31

标签: windows python-3.x

我正在编写一个程序,在数据库中的IP地址上运行跟踪路由(在Windows中使用tracert),操作响应并存储它。我已经全力以赴,但程序运行时间太长。该数据库包含~5000个IP地址,每个跟踪需要约30秒。这就是代码现在的样子:

output_files = getOutputFiles(output_dir)
ip_or_list = getIpsORs(server, user, passhash)

for obj in ip_or_list:
    ip = obj[0]
    order_nr = obj[1]
    trace = runTrace(ip)

    output_filename = order_nr + '___' + ip + '.txt'
    if output_filename in output_files:
        handleOutput(output_filename, trace)
    else:
        newOutputFile(output_filename, trace)
        handleOutput(output_filename, trace)

这会线性执行代码,遍历ip_or_list中的每个IP,等待跟踪完成,处理输出等。我需要的是能够同时运行4+轨迹的东西,存储以某种方式从中检索的数据,以便我可以在之后处理这些数据。

我确信有方法可以做到这一点。我相信我需要一些叫做异步编程(?)的东西,我已经做过研究了。 我找到了解决多线程或使用asyncio库的解决方案,但我不明白究竟是什么区别以及我需要解决这个问题。

我要问的是,我应该使用哪种方法解决这个问题,以便我能够正确地研究它是如何工作的,以及如何将它应用到我的情况而不会太困惑。

0 个答案:

没有答案