我正在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]);
}
答案 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地址使用必须与网络定义的首选项匹配。