Obendo informações sobre os adaptadores de rede

Utilizando os recursos da plataforma .NET podemos entre muitas outras coisas obter as informações sobre os adaptadores de rede que estão concectados à nossa máquina.
Para obter informações sobre as interfaces de rede que estão conectadas à máquina local o namespace System.Net.NetworkInformation fornece acesso fácil as informações sobre a rede, configurações e estatísticas,
O método estático NetworkInterface.GetAllNetworkInterfaces, retorna uma matriz de objetos NetworkInterface. Cada objeto representa uma única interface de rede na máquina local, onde você então pode obter informações de rede e estatísticas da interface em questão.
Exemplo:
 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading.Tasks;

namespace CSharpNetwork
{
class Program
{
static void Main(string[] args)
{
// Verifica se existe alguma interface disponível
if (NetworkInterface.GetIsNetworkAvailable())
{
// Obtém todas as interfaces da máquina local
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();

foreach (NetworkInterface ni in interfaces)
{
// Informações básicas

// Nome da interface
Console.WriteLine("Nome da Interface: {0}", ni.Name);

// Obtém a descrição geral da interface
Console.WriteLine("Descrição: {0}", ni.Description);
// Identificador da interface
Console.WriteLine("Id: {0}", ni.Id);

// Obtém o valor do enumerador System.Net.NetworkInformation.NetworkInterfaceType
// que identifica o tipo da interface (Ethernet, FastEthernetT, LoopBack
Console.WriteLine("Tipo: {0}", ni.NetworkInterfaceType);

// Velocidade (bits por segundo)
Console.WriteLine("Velocidade: {0}", ni.Speed);

// Indica se a interface está ativa
Console.WriteLine("Status: {0}", ni.OperationalStatus);

// Indica se a interface somente recebe dados ou envia
// e recebe dados.
Console.WriteLine("Somente Recebe Dados: {0}", ni.IsReceiveOnly);


// Informações de endereçamento
Console.WriteLine("Endereço Físico (MAC): {0}", ni.GetPhysicalAddress().ToString());


Console.WriteLine("Endereços IP:");
foreach (var addr in ni.GetIPProperties().UnicastAddresses)
{
Console.WriteLine("             -IP: {0}, Máscara: {1}, Expira em: {2}",
addr.Address, addr.IPv4Mask, DateTime.Now + new TimeSpan(0, 0, (int)addr.DhcpLeaseLifetime));
}
// Estatísticas da interface
Console.WriteLine("Bytes enviados: {0}", ni.GetIPv4Statistics().BytesSent);
Console.WriteLine("Bytes recebidos: {0}", ni.GetIPv4Statistics().BytesReceived);
}

Console.ReadKey();
}
else
{
// Nâo existem nenhuma interface de rede disponível....
}
}
}
}

Até a próxima.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s