0

我正在 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]);
            }
4

2 回答 2

1

要确定电话当前使用的网络,您可以检查NetworkInterfaceType。此处的模式详细信息http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh487166(v=vs.105).aspx

于 2013-06-11T12:21:07.310 回答
1

您可以使用此代码来确定网络接口的类型在哪里:

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

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

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

您可以为 SocketRequest 和 WebRequest 设置您喜欢的网络,您可以在 msdn 中阅读相关文档:

Microsoft.Phone.Net.NetworkInformation.WebRequestExtensions

Microsoft.Phone.Net.NetworkInformation.SocketExtensions

只使用函数

SetNetworkPreference(Socket/WebRequest, NetworkSelectionCharacteristics)

用于使用您喜欢的网络定义请求。

为了给您的应用程序用户提供更好的体验,通常更喜欢 NonCellular DataConnection,它更快 [4G 除外] 并且更便宜......:D

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

于 2013-06-11T15:14:10.597 回答