C# 在标签上显示首选DNS和备用DNS
我希望能够通过标签显示当前首选DNS和备用DNSC# 在标签上显示首选DNS和备用DNS,c#,dns,network-interface,C#,Dns,Network Interface,我希望能够通过标签显示当前首选DNS和备用DNS private void Form1_Load(object sender, EventArgs e) { NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface adapter in adapters) { IPI
private void Form1_Load(object sender, EventArgs e)
{
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
IPAddressCollection dnsServers = adapterProperties.DnsAddresses;
if (dnsServers.Count > 0)
{
Console.WriteLine(adapter.Description);
foreach (IPAddress dns in dnsServers)
{
label4.Text = dns.ToString();
}
}
}
}
我该怎么做
private void Form1_Load(object sender, EventArgs e)
{
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
IPAddressCollection dnsServers = adapterProperties.DnsAddresses;
if (dnsServers.Count > 0)
{
Console.WriteLine(adapter.Description);
foreach (IPAddress dns in dnsServers)
{
label4.Text = dns.ToString();
}
}
}
}
我已经调查过了,看来我必须使用
private void Form1_Load(object sender, EventArgs e)
{
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
IPAddressCollection dnsServers = adapterProperties.DnsAddresses;
if (dnsServers.Count > 0)
{
Console.WriteLine(adapter.Description);
foreach (IPAddress dns in dnsServers)
{
label4.Text = dns.ToString();
}
}
}
}
管理对象搜索器?使用WMI
private void Form1_Load(object sender, EventArgs e)
{
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
IPAddressCollection dnsServers = adapterProperties.DnsAddresses;
if (dnsServers.Count > 0)
{
Console.WriteLine(adapter.Description);
foreach (IPAddress dns in dnsServers)
{
label4.Text = dns.ToString();
}
}
}
}
什么样的
ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_NetworkAdapter Where AdapterType='DnsForestName'");
foreach (ManagementObject mo in mos.Get())
{
label1.Text = mos.ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
IPAddressCollection dnsServers = adapterProperties.DnsAddresses;
if (dnsServers.Count > 0)
{
Console.WriteLine(adapter.Description);
foreach (IPAddress dns in dnsServers)
{
label4.Text = dns.ToString();
}
}
}
}
您可能需要查看以下-
i接口属性。dnsaddress
Property
private void Form1_Load(object sender, EventArgs e)
{
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
IPAddressCollection dnsServers = adapterProperties.DnsAddresses;
if (dnsServers.Count > 0)
{
Console.WriteLine(adapter.Description);
foreach (IPAddress dns in dnsServers)
{
label4.Text = dns.ToString();
}
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
IPAddressCollection dnsServers = adapterProperties.DnsAddresses;
if (dnsServers.Count > 0)
{
Console.WriteLine(adapter.Description);
foreach (IPAddress dns in dnsServers)
{
label4.Text = dns.ToString();
}
}
}
}
该文档提供了一个很好的示例,说明如何枚举所有网络接口及其DNS IP地址。。但正如我在对你的问题的评论中所说。。如果您有多个网络接口,则必须定义选择感兴趣网络接口的标准
private void Form1_Load(object sender, EventArgs e)
{
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
IPAddressCollection dnsServers = adapterProperties.DnsAddresses;
if (dnsServers.Count > 0)
{
Console.WriteLine(adapter.Description);
foreach (IPAddress dns in dnsServers)
{
label4.Text = dns.ToString();
}
}
}
}
请注意,我不能100%确定此属性返回dnsaddress的顺序是主Dns,后面是0或更多次Dns。。我猜是这样的,但据我所知,没有任何文档可以证实这一假设。我可以用这段代码做我想做的事情
private void Form1_Load(object sender, EventArgs e)
{
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
IPAddressCollection dnsServers = adapterProperties.DnsAddresses;
if (dnsServers.Count > 0)
{
Console.WriteLine(adapter.Description);
foreach (IPAddress dns in dnsServers)
{
label4.Text = dns.ToString();
}
}
}
}
您是否关心您获取DNS地址的连接,例如电缆或WiFi?是的,我希望首选DNS或替代DNS可以安全地假设运行代码的机器只有一个网络接口?如果可以有多个网络接口,第一个问题是,您选择正确网络接口的标准是什么?是的,只有一个网络接口,但是如果它有两个,请选择局域网连接。