Python Nmap扫描程序进度

问题描述 投票:1回答:1

所以我目前正在使用python的nmap库来了解python3中的库。 documentation使用我实现的nmap.PortScanner()。

我的问题是,有没有办法确定nmap.PortScanner()在扫描过程中的位置,或者让用户知道它仍在扫描的方法?在nmap.PortScannerAsync()中有一个方法,即:nmap.still_scanning()。

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

任何帮助,将不胜感激。

〜Kyhle

python-3.x nmap port-scanning
1个回答
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上看过,但是在发布这个帖子时我找不到它。

希望这可以帮助处于类似位置的人。

〜Kyhle

© www.soinside.com 2019 - 2024. All rights reserved.