Creare un network scanner in VB.NET

Mattepuffo's logo
Creare un network scanner in VB.NET

Creare un network scanner in VB.NET

In sostanza quello che vogliamo fare è scandagliare tutta la rete locale ed identificare quali IP sono attivi.

Per farlo dobbiamo fare un PING su tutti gli indirizzi.

In VB.NET abbiamo la possibilità di usare la classe Ping.

In questo articolo vediamo come fare; non dobbiamo installare nessuna dipendenza:

Imports System.Net.NetworkInformation
Imports System.Text

Module Program
    Sub Main(args As String())
        For i As Integer = 0 To 254
            SendPing("192.168.1." & i)
        Next
    End Sub

    Sub SendPing(ByVal host As String)
        Dim pingSender As New Ping()

        Dim data As String = "unpòdidati"
        Dim buffer As Byte() = Encoding.ASCII.GetBytes(data)

        Dim timeout As Integer = 2000

        Dim options As New PingOptions(64, True)

        Dim reply As PingReply = pingSender.Send(host, timeout, buffer, options)

        If reply.Status = IPStatus.Success Then
            Console.WriteLine("Address: {0}", reply.Address.ToString())
            Console.WriteLine("RoundTrip time: {0} ms", reply.RoundtripTime)
            Console.WriteLine("Time to live: {0}", reply.Options.Ttl)
            Console.WriteLine("Don't fragment: {0}", reply.Options.DontFragment)
            Console.WriteLine("Buffer size: {0}", reply.Buffer.Length)
        Else
            Console.WriteLine("{0}: {1}", host, reply.Status)
        End If

        Console.WriteLine("-----")
    End Sub
End Module

Ovviamente accertatevi della vostra classe di IP, che potrebbe essere diversa dalla mia.

Provate anche diversi valori di timeoout per vedere le differenti risposte.

Enjooy!


Condividi

Commentami!