Python 3.x Python Nmap扫描程序进度

Python 3.x Python Nmap扫描程序进度,python-3.x,nmap,port-scanning,Python 3.x,Nmap,Port Scanning,因此,我目前使用python的nmap库只是为了了解python 3中的库。使用我已经实现的nmap.PortScanner() 我的问题是,有没有办法确定nmap.PortScanner()在扫描过程中的距离,或者让用户知道它仍在扫描? 在nmap.PortScannerAsync()中有一种方法可以做到这一点,即:nmap.still\u scanning() 我会使用nmap.portscannersync(),但是我需要使用nmap.PortScanner()中的方法 任何帮助都将不胜感

因此,我目前使用python的nmap库只是为了了解python 3中的库。使用我已经实现的nmap.PortScanner()

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

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

任何帮助都将不胜感激


~Kyhle

所以我设法找到了一个似乎有效的解决方案。我仍然会努力让它变得更好,但我认为我应该提出一个临时解决方案,以防有人在同一个问题上挣扎

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

from threading import Thread
这就是第一步。从那时起,我需要确定如何将扫描过程实际放入一个线程,因为我对使用多个线程不感兴趣(我只想看到扫描的进度)。我发现有效的解决方案如下所示:

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上看到了这篇文章,但在发表这篇文章的时候我找不到它

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

~z~凯勒