0

Windows Phone 8 でアプリケーションを開発していますが、知りたいのですが、取得したデバイスの IP アドレスが Wi-Fi 経由かキャリア経由かを確認することはできますか?

        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

このコードを使用して、 Network Interface のタイプがどこにあるかを判断できます。

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

Wifi を使用している場合、このコードは "Wireless80211" を返します。ここですべてのドキュメントを読むことができます

また、Windows Phone では、好みの NetworkInterface を設定できます (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 に答える