How can I get the local ip address on a wp8 with cordova (phonegap) ? Maybe I need the answer of the following thread, but in C# Get local IP address of client using javascript
-
No it looks like you might need http://stackoverflow.com/questions/391979/get-client-ip-using-just-javascript. This is 100% JavaScript/HTML and relies on a server to bounce back the IP address it see you on. – Paul Annetts Apr 19 '13 at 10:39
-
that's a very good solution, but the app am developing is meant for local wifi network. I want the user to be able to identify their ip. – Yiannis Stavrianos Apr 19 '13 at 11:18
-
I don't know how cordova works, but if it's possible to call some custom .NET assembly from it, then you can get the IP addresses of the phone easily. I mean, you'll implement a function getting the IP addresses in C# or C++, and then call that function from javascript. – Haspemulator Apr 19 '13 at 11:27
2 Answers
If you can call to C# code from cordova, then in C# it's implemented like this:
Windows.Networking.Connectivity.NetworkInformation.GetHostNames();
The resulting collection contains information about all network interfaces of the phone, via instances of Windows.Networking.HostName
class. You can get IP addresses from that instance: Windows.Networking.HostName.CanonicalName
.
Be warned that you'll probably receive several interfaces in the response. Most probably, you'll get one for cellular network modem and one for Wi-Fi network. If you need to distinguish between them, you can use Windows.Networking.HostName.IPInformation.NetworkAdapter.IanaInterfaceType
property. For Wi-Fi, it will contain value 71. For cellular (at least for my current phone and carrier) it displays 244. The full list of values could be found on IANA website.

- 11,050
- 9
- 49
- 76
This also worked for me in C#.. for those who need it, here's a list of the numbers:
code example:
var l = Windows.Networking.Connectivity.NetworkInformation.GetHostNames();
foreach (var item in l)
{
if (item.Type == Windows.Networking.HostNameType.Ipv4 &&
( item.IPInformation.NetworkAdapter.IanaInterfaceType == 71 || // 71 = An IEEE 802.11 wireless network interface. (device)
item.IPInformation.NetworkAdapter.IanaInterfaceType == 6) ) // 6 = An Ethernet interface. (emulator)
{
IPAddr = item.DisplayName;
}
}

- 287
- 3
- 6