【问题标题】:Python Nmap Scanner ProgressPython Nmap 扫描仪进度
【发布时间】:2019-02-09 18:14:24
【问题描述】:

所以我目前使用python的nmap库只是为了了解python3中的库。 documentation 使用我已经实现的 nmap.PortScanner()

我的问题是,有没有办法确定 nmap.PortScanner() 在扫描过程中的距离,或者让用户知道它仍在扫描的方法? 在 nmap.PortScannerAsync() 中有一个方法可以做到这一点,即:nmap.still_scanning()

我会使用 nmap.PortScannerAsync(),但是我需要使用 nmap.PortScanner() 中的方法。

任何帮助将不胜感激。

~凯尔

【问题讨论】:

    标签: python-3.x nmap port-scanning


    【解决方案1】:

    所以我设法找到了一个似乎可行的解决方案。我仍然会尝试让它变得更好,但我想我会提出一个临时解决方案,以防有人遇到同样的问题。

    所以我的想法是,如果您想查看进度,扫描过程可能需要在单独的线程中,因为我不知道有什么方法可以挂接到 .scan() 方法。为此,导入了以下库:

    from threading import Thread
    

    这是第 1 步。从那里我需要确定如何将扫描过程实际放入一个线程中,因为我对使用多个线程不感兴趣(我只想查看扫描的进度)。我发现可行的解决方案如下所示:

    scan_thread = Thread(target=network_scan.scan, args=(ip_address, port_range,))
    scan_thread.start()
    while True:
        scan_thread.join(timeout=3)
        if not scan_thread.is_alive():
            break
        print('Nmap is still running...')
    

    此解决方案的灵感来自我认为我在 stackoverflow 上看到的另一篇关于多线程的帖子,但我在发布此内容时找不到它。

    希望这对处于类似位置的人有所帮助。

    ~凯尔

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      • 2012-07-17
      • 2017-08-22
      相关资源
      最近更新 更多