VB .NET - Obtendo informações das interfaces de rede local (II)


Você esta precisando obter informações sobre as interfaces das redes locais no seu computador ?

Não se perturbe, o VB .NET possui recursos que facilitam obter essas informações.

Para obter informações das redes locais chame o método estático(Shared) GetAllNetworkInterfaces do namespace System.Net.NetworkInformation.NetworkInterface para obter uma matriz de objetos derivados da classe abstrata NetworkInterface.

Cada objeto representa uma interface de rede disponível na máquina local. A seguir você pode usar os membros de cada objeto NetworkInterface para recuperar informações de configuração e estatísticas de rede para essa interface.

O namespace System.Net.NetworkInformation , que foi introduzido pela primeira vez em .NET Framework 2.0, fornece acesso fácil às informações sobre a configuração da rede e estatísticas que antes não eram disponíveis.

O principal meio de recuperar informações de rede são as propriedades e métodos da classe NetworkInterface . Você não instancia os objetos NetworkInterface diretamente. Em vez disso, você chama o método estático NetworkInterface.GetAllNetworkInterfaces que retorna um array de objetos NetworkInterface .

Cada objeto representa uma única interface de rede na máquina local; você pode, então, obter informações sobre a rede e as estatísticas da interface usando os membros da interface NetworkInterface.

Abaixo temos um resumo dos principais métodos e propriedades:

Propriedades:

Membro Descrição
Description Retorna uma string que fornece uma descrição geral da interface
Id Retorna uma string que contém um identificador único da interface
IsReceiveOnly Valor boleano que indica se a interface pode apenas receber ou receber e enviar dados
Name String contendo o nome da interface
NetWorkInterfaceType Retorna um valor da enumeração System.Net.NetworkInformation.NetworkInterfaceType que
identifica o tipo da interface: Ethernet, FastEthernetT e loopback
OperationalStatus Retorna um valor da System.Net.NetworkInformation.OperationalStatus que identifica o estado
interface : Down e Up
Speed Retorna um long que identifica a velocidade da interface (em bits por segundo) reportada pelo
Adaptador
SupportsMulticast Retorna um valor boleano que indica se a interface suporta pacotes multicast

Métodos:

Membro Descrição
GetIPProperties Retorna um objeto System.Net.NetworkInformation.IPInterfaceProperties que fornece acesso para a confirmação
de configuração TCP/IP para a interface. Suas propriedades fornecem a acesso ao WINS, DNS, gateway e configuração
de endereço IP.
GetIPv4Statistics Retorna um objeto System.Net.NetworkInformation.IPv4InterfaceStatistics que fornece acesso às estatísticas TCP/IP v4
para a interface.
GetPhysicalAddress Retorna um objeto System.Net.NetworkInformation.PhysicalAddress que fornece acesso ao endereço físico da interface.
Supports Retorna um boleano que indica se a interface suporta um protocolo específico.
Você especifica um valor usando a enumeração
System.Net.NetworkInformation.NetworkInterfaceComponent

Vamos criar um projeto bem simples para obter informações das interfaces das redes locais usando os recursos acima.

Abra o Visual Studio 2012 Express for desktop e clique no menu File -> New Project selecionando o template Visual Basic -> Windows Forms Application informando o nome VB_Informacoes_Rede.

A seguir inclua os seguintes controles no formulário form1.vb:

Disponha os controles conforme a figura abaixo:

No início do formulário form1.vb declare o seguinte namespace:

Imports System.Net.NetworkInformation

A seguir no evento Click do botão de comando inclua o código abaixo:

Private Sub btnInfo_Click(sender As Object, e As EventArgs) Handles btnInfo.Click
        ' Somente continua se existir uma rede disponível
        If NetworkInterface.GetIsNetworkAvailable Then
            ' Obtém e define todos os objetos NetworkInterface para a máquina local
            Dim interfaces As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces()
            ' Itera sobre as interfaces e exibe as informações
            For Each ni As NetworkInterface In interfaces
                ' Rela a informação da interface
                lbInfo.Items.Add("Interface: " &  ni.Name)
                lbInfo.Items.Add(" Descrição: " &  ni.Description)
                lbInfo.Items.Add(" ID: " &  ni.Id)
                lbInfo.Items.Add(" Tipo: " &  ni.NetworkInterfaceType)
                lbInfo.Items.Add(" Velocidade: " &  ni.Speed)
                lbInfo.Items.Add(" Status: " &  ni.OperationalStatus)
                ' endereço físico
                lbInfo.Items.Add(" Endereço Físico: " &  ni.GetPhysicalAddress().ToString)
                ' relata estatísticas de rede para a interface
                lbInfo.Items.Add(" Bytes Enviados : " &  ni.GetIPv4Statistics().BytesSent)
                lbInfo.Items.Add(" Bytes Recebidos: " &  ni.GetIPv4Statistics.BytesReceived)
                ' Configuração do IP
                lbInfo.Items.Add(" Endereço(s) IP : ")
                For Each addr As UnicastIPAddressInformation In ni.GetIPProperties.UnicastAddresses()
                    lbInfo.Items.Add(" - > " &  addr.Address.ToString & " - " & DateTime.Now.AddSeconds(addr.DhcpLeaseLifetime))
                Next
                lbInfo.Items.Add(Environment.NewLine)
            Next
        Else
            lbInfo.Items.Add("Nenhuma interface de rede localizada.")
        End If
        lbInfo.Items.Add(Environment.NewLine)
        lbInfo.Items.Add("Operação concluída.")
    End Sub

Executando o projeto e clicando no botão de comando obtemos o seguinte resultado:

Simples e funcional.

Pegue o projeto completo aqui: VB_Informacoes_Rede.zip

João 8:42 Respondeu-lhes Jesus: Se Deus fosse o vosso Pai, vós me amaríeis, porque eu saí e vim de Deus; pois não vim de mim mesmo, mas ele me enviou.

João 8:43 Por que não compreendeis a minha linguagem? é porque não podeis ouvir a minha palavra.

João 8:44 Vós tendes por pai o Diabo, e quereis satisfazer os desejos de vosso pai; ele é homicida desde o princípio, e nunca se firmou na verdade, porque nele não há verdade; quando ele profere mentira, fala do que lhe é próprio; porque é mentiroso, e pai da mentira.


Veja os Destaques e novidades do SUPER DVD VB (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Veja mais sistemas completos para a plataforma .NET no Super DVD .NET , confira...

Quer aprender C# ??

Chegou o Super DVD C# com exclusivo material de suporte e vídeo aulas com curso básico sobre C#
 

   Gostou ?   Compartilhe no Facebook    Compartilhe no Twitter

Referências:


José Carlos Macoratti