C# Semplice port scanner

set 8th, 2009 | Filed under .NET, C#, Snippet

Link sponsorizzati

Questo Snippet sfrutta la classe TcpClient per creare un semplice port scanner.

        static void scan(string ip, int da, int a)
        {
            TcpClient port = new TcpClient();
            for (int i = da; i < = a; i++)
            {
                Console.Write("Port " + i.ToString() + ": ");
                try
                {
                    port.Connect(ip, i);
                    Console.WriteLine("Aperta");
                }
                catch
                {
                    Console.WriteLine("Chiusa");
                }
            }
            Console.WriteLine("Scansione finita... premi un tasto per uscire");
        }

In questo caso l’ho fatto per una console application, ma basta poco per modificarla e renderla funzionale per qualsiasi altra applicazione.

Link sponsorizzati

Il funzionamento è semplice, come vedete è un for e basta, dentro a questo viene inserito un blocco try-catch. La funzione membro Connect della classe TcpClient solleva un’eccezione nel caso in cui la porta è chiusa, quindi, viene stampato un messaggio rispettivamente se la funzione solleva un’eccezione o meno. Non c’è il controllo dell’ip, teoricamente se mettete un’ip errato (o non raggiungibile) vi segnala tutte le porte chiuse, questo perchè, sempre la funzione Connect, solleva un’altra eccezione, diversa dalla precedente, che ci informa che stiamo tentando di connetterci ad un host irraggiungibile. Non avendo fatto la gestione nel blocco catch vi da sempre che è chiusa.

Il risultato, dopo aver scrivvo il main che preleva i valori e richiamato la funzione, è qualcosa del genere

Inserisci l'ip: 74.125.39.104
Inserisci la porta di partenza: 8078
Inserisci la porta di arrivo: 8081
Port 8078: Chiusa
Port 8079: Chiusa
Port 8080: Aperta
Port 8081: Chiusa
Scansione finita... premi un tasto per uscire

L'ip è quello di google.it, ovviamente la 8080 deve essere per forza aperta per i servizi web.

Link sponsorizzati

Condividi l'articolo

Post correlati:

Non sono ancora stati lasciati commenti.