Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在标签上显示首选DNS和备用DNS_C#_Dns_Network Interface - Fatal编程技术网

C# 在标签上显示首选DNS和备用DNS

C# 在标签上显示首选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

我希望能够通过标签显示当前首选DNS和备用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();
                }

            }
        }
    }
我该怎么做

    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可以安全地假设运行代码的机器只有一个网络接口?如果可以有多个网络接口,第一个问题是,您选择正确网络接口的标准是什么?是的,只有一个网络接口,但是如果它有两个,请选择局域网连接。