We can perform asynchronous scans using the PortScannerAsync() class. In this case, when performing the scan we can indicate an additional callback parameter where we define the return function, which would be executed at the end of the scan:
import nmapnmasync = nmap.PortScannerAsync()def callback_result(host, scan_result): print host, scan_resultnmasync.scan(hosts='127.0.0.1', arguments='-sP', callback=callback_result)while nmasync.still_scanning(): print("Waiting >>>") nmasync.wait(2)
In this way, we can define a callback function that is executed whenever Nmap has a result for the machine we are analyzing.
The following script allows us to perform a scan with Nmap asynchronously so that the target and port are ...