在 chrome 扩展程序上获取用户的互联网连接基本信息?

Getting user's internet connection basic information on a chrome extensions?

所以我想尝试着手 chrome 扩展并有一个想法,但我不知道这是否可能。我需要的是获取用户互联网连接的一些基本信息,例如网络名称,可以很容易地将一个连接与另一个连接区分开来。

我想要做的是在启动 google chrome 时根据用户连接的网络打开不同的选项卡。例如,如果用户连接到他们的家庭网络,它可以打开 facebook 或 youtube 之类的东西,而不是在连接到他们的工作网络时打开与工作相关的网站。

到目前为止我所能找到的只是检查是否存在与 JS 的连接,所以我很想说这是不可能的,但是有什么方法可以做到这一点吗?同样,我是 chrome 扩展的新手,所以我真的不知道我可以做的所有可能的事情。

有很多方法可以做到这一点,您可以使用网络信息 API 和

NetworkInformation.connection 

chrome 支持。

做类似

的事情
var connection = navigator.connection || navigator.webkitConnection;

这将使您能够访问一个布尔值(您已经拥有)或一个值。

但我认为您正在寻找的是 IP 检测,因为范围对于他们的 "home network" 网络本身、网络名称和数据将不可用客户端代码,如 JS。您可以使用像 Python 这样的延迟语言,并将其与 PyJamas 连接起来。

http://pyjs.org/

编辑: 或者尝试使用节点。是的,这是服务器端,但有资源可以为 chrome 扩展实现它。通过使用网络模块,您可以嗅出许多不同的信息,例如

network.get_private_ip(function(err, ip) {
  console.log(err || ip); // should give you the users public IP, to help find out where they are
})

或使用

network.get_interfaces_list(function(err, list) { }

得到类似

的东西
name: 'eth0',
ip_address: '10.0.1.3',
mac_address: '56:e5:f9:e4:38:1d',
type: 'Wired',
netmask: '255.255.255.0',
gateway_ip: '10.0.1.1'

我找到了一种方法,尽管它依赖于第三方服务。 http://www.hostip.info(我相信还有很多其他人)有一个简单的 API 来获取网络的 IP 地址,因此一个简单的 XMLHTTPRequest 就可以完成这项工作。

我仍在寻找无需依赖他人的方法(也不像 hostip.info 那样自己设置在线服务),但目前这行得通。

感谢pj100提醒我网络IP地址也可以,不好意思之前没想到