I am working on a chrome extension which is supposed to discover and then communicate with other devices in a local network. To discover them it needs to find out its own IP-address to find out the IP-range of the network to check for other devices. I am stuck on how to find the IP-address of the local machine (I am not talking about the localhost nor am I talking about the address that is exposed to the internet but the address on the local network). Basically, what I would love is to get what would be the ifconfig output in the terminal inside my background.js.
The Chrome Apps API offers chrome.socket which seems to be able to do this, however, it is not available for extensions. Reading through the API for extensions I have not found anything that seems to enable me to find the local ip.
Am I missing something or is this impossible for some reason? Is there any other way to discover other devices on the network, that would also do just fine (as they would be on the same IP-range) but while there are some rumors from December of 2012 that there could be a discovery API for extensions nothing seems to exist yet.
Does anybody have any ideas?
see http://developer.chrome.com/extensions/webRequest.html for detail, my code example:
Works for me too and it replies:
0 : {address: "xxxx", name: "en0", prefixLength: 64}
1 : {address: "192.168.86.100", name: "en0", prefixLength: 24}
2 : {address: "xxxx", name: "awdl0", prefixLength: 64}
3 : {address: "xxxx", name: "utun0", prefixLength: 64}
length : 4
After some searching I've found that similar question was answered before. This API is inaccessible from extension, but available for chrome apps:
You can get a list of your local IP addresses (more precisely: The IP addresses of your local network interfaces) via the WebRTC API. This API can be used by any web application (not just Chrome extensions).
Example: