10
如何在C#中获取当前的DNS服务器?如何在C#中获取当前的DNS服务器?
如何在C#中获取当前的DNS服务器?如何在C#中获取当前的DNS服务器?
有关示例代码,请参阅IPInterfaceProperties.DnsAddresses
上的MSDN。
我最近正在尝试做同样的事情,发现了Robert Sindal的excellent example。
using System;
using System.Net;
using System.Net.NetworkInformation;
namespace HowToGetLocalDnsServerAddressConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(GetDnsAdress());
Console.ReadKey();
}
private static IPAddress GetDnsAdress()
{
NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface networkInterface in networkInterfaces)
{
if (networkInterface.OperationalStatus == OperationalStatus.Up)
{
IPInterfaceProperties ipProperties = networkInterface.GetIPProperties();
IPAddressCollection dnsAddresses = ipProperties.DnsAddresses;
foreach (IPAddress dnsAdress in dnsAddresses)
{
return dnsAdress;
}
}
}
throw new InvalidOperationException("Unable to find DNS Address");
}
}
}
由你的,你的意思是本地机器的DNS服务器,你的域名或其他的DNS服务器?对于什么是“您的DNS服务器”,IMO有许多不同的答案。 – 2010-05-25 16:57:27
我在考虑将执行Mx Record Lookup的不安全代码转换为安全版本。 请参阅: http://stackoverflow.com/questions/2906615/how-to-get-around-dnsrecordlistfree-error-in-net-framework-4-0 – 2010-05-25 17:26:37
我想知道的是如何执行DNS查找,而不必指定DNS服务器名称,即让系统使用默认值。这就是你在任何时候在某处输入URL时会发生的情况,所以不知道为什么DNS类不能允许默认值。 – 2012-03-29 15:03:56