C# - Usando classes para a programação com a web (.NET Core) - IV
Hoje vamos continuar a apresentar algumas classes que facilitam a programação para web na linguagem C#. |
Continuando a terceira parte do artigo vamos tratar das classes
IPHostEntry e Dsn
na
linguagem C# na .NET Core.
A classe IPHostEntry
A classe IPHostEntrys fornece uma classe de contêiner para informações de endereço de host da Internet.
Esta classe classe associa um
nome de host do sistema de nome de domínio (DNS)
com um array de aliases e um array de
endereços IP correspondentes sendo usada como uma
classe auxiliar da classe Dns.
Principais propriedades:
AddressList | Obtém ou define uma lista de endereços IP associados a um host. |
Aliases | Obtém ou define uma lista de aliases associados a um host. |
HostName | Obtém ou define o nome DNS do host. |
A classe Dns
A classe Dns fornece a funcionalidade de resolução de nome de domínio simples.
Esta classe é uma classe estática que recupera
informações sobre um host específico a partir do sisetma DNS( Sistema de
nomes de domínios da Internet)
As informações do host a partir da consulta DNS são
retornadas em uma instância da classe IPHostEntry.
Se o host especificado tem mais de uma entrada no banco de dados DNS, a classe
IPHostEntry vai conter vários endereços IP e
aliases.
Principais métodos:
BeginGetHostAddress | Retorna os endereços IP (protocolo IP) de modo assíncrono para o host especificado. |
BeginGetHostByName | Inicia uma solicitação assíncrona para a informações IPHostEntry sobre o nome de host DNS especificado. |
BeginGetHostEntry | Resolve assincronamente um endereço IP para uma instância de IPHostEntry. |
BeginResolve | Inicia uma solicitação assíncrona para resolver um nome de host DNS ou endereço IP para uma instância IPAddress. |
GetHostAddresses | Retorna os endereços IP (Internet Protocol) para o host especificado. |
GetHostbyAddress | Cria uma instância de IPHostEntry do IPAddress especificado |
GetHostEntry | Resolve um nome do host ou endereço IP para uma instância IPHostEntry |
GetHostName | Obtém o nome de host do computador local |
Resolve | Resolve um nome do host DNS ou endereço IP para uma instância IPHostEntry |
Vejamos a seguir alguns exemplos práticos usando estas
classes.
Vamos criar um projeto .NET Core tipo Console no VS 2017 Community chamado NETCore_Dns.
Nosso primeiro exemplo vai usar o método Dns.GetHostAddresses(hostname) para retornar um array de endereços IP para um nome de host:
using static System.Console;
using System.Net;
using System.Threading.Tasks;
using System;
namespace NetCore_Dns
{
class Program
{
static void Main(string[] args)
{
do
{
Write("Informe o nome do host:\t");
string hostname = ReadLine();
if (hostname.CompareTo("sair") == 0)
{
WriteLine("tchau...!!");
return;
}
IPAddress[] array = Dns.GetHostAddresses(hostname);
foreach (IPAddress ip in array)
{
WriteLine(ip.ToString());
}
} while (true);
}
}
}
|
Executando programa iremos obter:
O programa exibe os endereços IPs para o nome do host
informado.
No exemplo a seguir temos uma aplicação que faz um loop para solicitar ao usuário o nome do host (você pode adicionar um endereço IP) para obter um IPHostEntry via método Dns.GetHostEntryAsync.
A partir do IPHostEntry,
a lista de endereços é acessada usando a propriedade
AddressList, exibindo no console todos os endereços do host bem como o
AddressFamily:
No método main() do arquivo Program.cs inclua o código a seguir:
using static System.Console;
using System.Net;
using System.Threading.Tasks;
using System;
namespace NetCore_Dns
{
class Program
{
static void Main(string[] args)
{
do
{
Write("Informe o nome do host:\t");
string hostname = ReadLine();
if (hostname.CompareTo("sair") == 0)
{
WriteLine("tchau...!!");
return;
}
ProcurarHostAsync(hostname).Wait();
WriteLine();
} while (true);
}
public static async Task ProcurarHostAsync(string hostname)
{
try
{
IPHostEntry ipHost = await Dns.GetHostEntryAsync(hostname);
WriteLine($"Nome do Host : {ipHost.HostName}");
foreach (IPAddress address in ipHost.AddressList)
{
WriteLine($"Família de Endereços : {address.AddressFamily}");
WriteLine($"Endereço: {address}");
}
}
catch (Exception ex)
{
WriteLine(ex.Message);
}
}
}
}
|
Às vezes, é útil ter o endereço IP numérico em vez de confiar no nome do host, entretanto para a maioria dos programas, basta usar o nome do host. (O nome do host pode ser alterado para resolver um endereço IP diferente.)
Executando programa iremos obter:
Na próxima parte do artigo vamos tratar dos protocolos TCP e UDP.
Pegue o projeto completo aqui:
NetCore_Dns.zip
"E esta é a mensagem que dele(Jesus) ouvimos, e vos
anunciamos: que Deus é luz, e não há nele trevas nenhumas."
1
João 1:5
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
NET Core ou .NET Framework - Macoratti
NET Core - Padrão Repositório - Macoratti
NET Core - Sua primeira aplicação Console Application - Macoratti
NET Core 3.0 e Visual Studio 2019 - Macoratti