在Chrome扩展程序中获取IP地址

时间:2015-09-21 03:44:15

标签: javascript ip-address google-chrome-app

我想在Chrome应用中获取用户的IP地址。内容安全策略指令阻止我使用IPify等服务或ajax请求,例如:

$.ajax({
    url: 'https://freegeoip.net/json/',
    type: 'POST',
    dataType: 'jsonp',
    success: function(location) {
        alert(location.ip);
    }
});

错误消息是:

拒绝加载脚本' https://freegeoip.net/json/?callback=jQuery21304975464364979416_1442806213407&_=1442806213408'因为它违反了以下内容安全策略指令:" default-src' self' blob:filesystem:chrome-extension-resource:"。请注意' script-src'没有明确设置,所以' default-src'被用作后备。

谢谢,

为清晰起见编辑:我正在寻找从全球互联网网络上的服务器看到的IP地址,而不是本地IP。

2 个答案:

答案 0 :(得分:0)

嗯,一种可能的方法是使用Chrome API chrome.system.network.getNetworkInterfaces()。这个例子就像这个。

chrome.system.network.getNetworkInterfaces(function(interfaces){
    console.log(interfaces.address);
});

manifest.json文件中,您可能需要像这样授予API权限。

"permissions": [
  "system.network"
]

答案 1 :(得分:-1)

它确实需要互联网权限,但唯一的方法是调用返回外部IP的Web服务。

我在service中找到了此answer