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!
vbnet ping
Commentami!