Следующий код можно использовать для выполнения поиска DNS для указанного имени хоста.
Использование DNS пропустит доступ к целевому серверу.Это независимая служба распределенных каталогов, которая поддерживает поиск имени хоста для IP-адреса.
Следующий код даст первый возвращенный IP-адрес для хоста, если для указанного имени хоста может быть разрешена запись DNS.
public void test()
{
string hostname = "google.com";
IPAddress ipAdress;
if (TryGetIpAddress(hostname, out ipAdress))
{
Console.WriteLine("Host:'{0}', IP:{1}.", hostname, ipAdress);
}
else
{
Console.WriteLine("Host '{0}' not found.", hostname);
}
}
public bool TryGetIpAddress(string hostname, out IPAddress ipAddress)
{
const int HostNotFound = 11001;
ipAddress = null;
try
{
IPHostEntry hostEntry = Dns.GetHostEntry(hostname);
ipAddress = hostEntry.AddressList[0];
}
catch (SocketException ex)
{
if (ex.ErrorCode != HostNotFound) throw;
}
return (ipAddress != null);
}