Domanda

Stavo leggendo il codice sorgente nmap perché mi piacerebbe sapere come fa scoprire che determinate porte vengono filtrati o dietro un firewall. Ho una certa esperienza con gli zoccoli in C e ho costruito semplici port scanner, che è facile - se la connessione riesce, la porta è aperta, altrimenti è chiuso (a causa della RST restituito). Ma nel caso delle porte firewalled, non tornano indietro pacchetto RST, e il mio port scanner solo "attese" per sempre.

Se l'esperienza ottenuto di qualcuno con questo argomento, per favore mi punto alle parti del codice nmap in cui si verifica la determinazione di scansione e la porta-stato attuale, o almeno mi dica se ci sono altri codici disponibili che si occupano di questo problema.

È stato utile?

Soluzione

Usa chiamate API di socket asincrono (cioè non aspettare per il collegamento da stabilire, e invece provare la seguente porta / indirizzo in parallelo) e definire un timeout ragionevole (ad esempio se la connessione non viene stabilita dopo un minuto si può considerare filtrato).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top