Eseguire NMAP da Python può essere fatto utilizzando il modulo “python-nmap”. Questo modulo aiuta a manipolare nmap da Python. Esso converte i rapporti di scansione in dizionari Python, ne facilita l’analisi, aiuta a lanciare le scansioni asincrone, consente di lanciare scansioni complesse con molteplici ranghi, ecc.
Innanzitutto, devi installare il modulo di sistema operativo. Puoi farlo utilizzando pip:
```
pip install python-nmap
```
Una volta installato, puoi importarlo nel tuo programma. Esempio di utilizzo di base:
```
import nmap
nm = nmap.PortScanner()
```
Possiamo utilizzare il comando `scan()` di `nm` per eseguire una scansione. Ad esempio, se vogliamo eseguire la scansione della porta 80 su 127.0.0.1:
```
nm.scan(‘127.0.0.1’, ‘80’)
```
Puoi recuperare i risultati con il comando `command_line()`:
```python
res = nm.command_line()
```
Se si desidera ottenere informazioni dettagliate sulle scansioni, è possibile utilizzare i metodi has_tcp() e has_udp():
\`\`\`python
print(nm[‘127.0.0.1’].has\_tcp(80))
print(nm[‘127.0.0.1’].has\_udp(80))
\`\`\`
Ricorda che è importante essere consapevoli delle implicazioni legali e etiche dell’utilizzo di strumenti come nmap. È contro la legge utilizzare strumenti come questo per eseguire la scansione di reti a cui non sei autorizzato.
I dettagli del modulo python-nmap sono disponibili nella documentazione ufficiale ([link](https://xael.org/pages/python-nmap-en.html)). Questo modulo facilita l’uso di nmap da Python, ma non sostituisce la conoscenza e la comprensione di come funzionano sia Python che nmap. Per ottenere il massimo da questa libreria, è importante comprendere bene entrambi.
Per esempi più approfonditi e dettagliati di utilizzo di nmap con Python, vi consiglio di consultare guide come quella offerta da PythonForBeginners.com ([link](https://www.pythonforbeginners.com/code-snippets-source-code/port-scanner-in-python)) o da Hackers-Arise ([link](https://www.hackers-arise.com/post/2017/02/20/python-for-hackers-part-iii-python-nmap-scripting)). Ricorda, tuttavia, di eseguire scansioni solo su reti in cui hai il permesso di farlo.