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

此代码可在模拟器中完美运行,但在设备上给出0条记录。

NetworkInterface.GetAllNetworkInterfaces();
foreach (IPAddress ipAddr in ipProps.DnsAddresses)
   Console.WriteLine(ipAddr);

另一方面,此代码可在模拟器和设备上运行:
IPHostEntry he = Dns.GetHostEntry(domain);
dns = he.HostName.ToString();

有了所有这些,我假设DNS服务器地址存储在某个地方。我的意思是它可以访问。如何获得其IP?

最佳答案

这将在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;
    }

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

关于ios - Monotouch中的默认DNS服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9281335/

10-12 02:41