单触控中的默认DNS服务器

Ale*_*x D 2 dns xamarin.ios ios

我想知道如何在monotouch中获得默认DNS服务器?

此代码在模拟器中完美运行,但在设备上提供0条记录.

NetworkInterface.GetAllNetworkInterfaces();
foreach (IPAddress ipAddr in ipProps.DnsAddresses)
   Console.WriteLine(ipAddr);
Run Code Online (Sandbox Code Playgroud)

另一方面,此代码适用于模拟器和设备:

IPHostEntry he = Dns.GetHostEntry(domain);
dns = he.HostName.ToString();
Run Code Online (Sandbox Code Playgroud)

拥有所有这些,我假设DNS服务器地址存储在某处.我的意思是它是可访问的.如何获得IP?

小智 5

这将获得MonoTouch中的IP地址: -

    public string GetIPAddress()
    {
        string address = "Not Connected";
        try
        {
            #if SIM
                address = IPAddress.FileStyleUriParser("127.0.0.1"); 
            #else
                string str = Dns.GetHostName() + ".local";
                IPHostEntry hostEntry = Dns.GetHostEntry(str);
                address = (
                           from addr in hostEntry.AddressList
                           where addr.AddressFamily == AddressFamily.InterNetwork
                           select addr.ToString()
                           ).FirstOrDefault();
            #endif
        }
        catch (Exception ex)
        {
            // Add error handling....
        }
        return address;
    }
Run Code Online (Sandbox Code Playgroud)

注意使用模拟器和设备之间的区别.