C# - Convertendo um Endereço IP para o hostname e vice-versa

 Neste artigo veremos como converter um endereço IP para seu hostname e vice-versa.

O que você faz quando precisa saber o endereço IP de uma máquina na sua rede local ?

Abre um prompt de comandos e executa o comando ipconfig:

Podemos também usar a classe estática Dns do namespace System.Net para resolver um DNS.

DNS ou Domain Name System, traduz os endereços IPs para nomes de domínios, assim para acessar uma página na web você digita a sua URL e o DNS traduz o nome de domínio para o endereço IP do servidor onde a página esta hospedada.

Assim, o método GetHostEntry da classe Dns retorna um tipo IPHostEntry que pode ser usado para acessar o nome do host usando sua propriedade HostName.

Crie um projeto do tipo Console App (.NET Framework) no VS 2017 Community.

1- Resolvendo o Endereço IP para nome do host

Inclua o código abaixo na classe Program.cs :

Executando o projeto:

2- Resolvendo o nome do host para o endereço IP

Executando o projeto teremos:

Um IPHostEntry pode associar vários endereços IP a um único nome de host por meio da
propriedade AddressList que é um array de objetos IPAddress, cada um dos quais
detém um único endereço IP.

Depois que o IPHostEntry é resolvido, a AddressList pode ser iterada usando um laço foreach para criar uma string que mostra todos os endereços IP para o nome de host. Se a entrada não puder ser resolvida, uma exceção SocketException será lançada.

Também existem os métodos GetHostByAddress e GetHostByName que podemos usar conforme mostra o exemplo a seguir, mas essas API estão obsoletas:

using System;
using System.Net;
using static System.Console;
namespace CshpWeb.HostByName
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                WriteLine("Informe o nome do HOST :");
                string nomeHost = ReadLine();
                try
                {
                    IPHostEntry hostInfo = Dns.GetHostByName(nomeHost);
                    Console.WriteLine("Nome do Host : " + hostInfo.HostName);
                    Console.WriteLine("Lista de Endereços IPs : ");
                    for (int index = 0; index < hostInfo.AddressList.Length; index++)
                    {
                        Console.WriteLine(hostInfo.AddressList[index]);
                    }
                }
                catch (System.Exception ex)
                {
                    WriteLine($"Não foi possível resolver o host : {nomeHost} - " + ex.Message);
                }
            }
        }
    }
}

Pegue o código completo aqui:  CShp_Web.zip

(disse Jesus) - "E a vida eterna é esta: que te conheçam, a ti só, por único Deus verdadeiro, e a Jesus Cristo, a quem enviaste."
João 17:3

 

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 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti