Windows phone 8 - IP地址是wifi或运营商

时间:2013-06-11 11:59:22

标签: windows-phone-8

我正在Windows Phone 8上开发一个应用程序,并且想知道 - 是否可以检查检索到的设备IP地址是通过Wifi还是运营商?

        Code used to find device IP address is -

        public IPAddress IdentifyDeviceIp()
            {
                    List<string> DeviceIPAddresses = new List<string>();
                    var DeviceHostnames = Windows.Networking.Connectivity.NetworkInformation.GetHostNames();
                    foreach (var DeviceHostName in DeviceHostnames)
                    {
                        if (DeviceHostName.IPInformation != null)
                        {
                            string DeviceIpAddress = DeviceHostName.DisplayName;
                            // Emulator: ignore IPV6 addresses
                            if (DeviceIpAddress.Contains(":"))
                                continue;
                            DeviceIPAddresses.Add(DeviceIpAddress);
                        }
                    }          
                if (DeviceIPAddresses.Count == 0)
                {
                    MessageBox.Show("No IP address found!!");
                    return new IPAddress(0);
                }
                return IPAddress.Parse(DeviceIPAddresses[0]);
            }

2 个答案:

答案 0 :(得分:1)

要确定手机当前使用的网络,您可以查看NetworkInterfaceType。模式详情请http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh487166(v=vs.105).aspx

答案 1 :(得分:1)

您可以使用此代码确定网络接口类型的位置:

NetworkInterfaceType MyNetworkInterfaceType = Microsoft.Phone.Net.NetworkInformation.NetworkInterface.NetworkInterfaceType; 

如果您使用Wifi,此代码返回“Wireless80211”,您可以阅读所有文档here

此外,使用Windows Phone,您可以设置您喜欢的NetworkInterface(如果您在Wifi上连接,在3G上,您可以使用蜂窝连接(2G / 3G / 4G)或NonCellular连接(以太网, Wifi ...)您可以阅读this获取信息

您可以为SocketRequest设置您喜欢的网络,对于WebRequest,您可以在msdn中阅读有关该文档的文档:

Microsoft.Phone.Net.NetworkInformation.WebRequestExtensions

Microsoft.Phone.Net.NetworkInformation.SocketExtensions

仅使用功能

SetNetworkPreference(Socket/WebRequest, NetworkSelectionCharacteristics)

用您的首选网络定义请求。

为了更好地为您的应用程序用户提供体验,更喜欢NonCellular DataConnection,一般来说,它更快[除了4G]并且更便宜......:D

对于您的问题,如果您设置了您喜欢的连接,并且您发送了请求,则此请求的ip地址使用必须与网络定义的首选项匹配。