在Chrome App上获取IP地址

时间:2014-08-07 17:05:16

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

我正在开发Chrome应用,我需要获取外部IP地址。

我已尝试加载外部脚本,但即使我在'content_security_policy'文件中将源添加到manifest.json,我也收到了错误。

我放弃了,然后我尝试向IP主机/服务网站发出XMLHttpRequest请求,但是请求需要是异步的,即使使用{{我也无法将响应保存到变量1}}。

我总是得到setTimeout(),因为在请求完成之前,变量显然已经设置好了。

那么请你帮我找一个获得IP的简单解决方案吗?

1 个答案:

答案 0 :(得分:2)

此网站 http://jsonip.com/ 会输出JSON这样的对象:

{"ip":"xxx.xxx.xxx.xxx","about":"/about","Pro!":"http://getjsonip.com"}

您可以像这样对该网站执行异步XMLHttpRequest

var xhr = new XMLHttpRequest(),
    IP_ADDRESS;

xhr.onreadystatechange = function() {
    if (xhr.readyState==4 && xhr.status==200) {
        IP_ADDRESS = JSON.parse(xhr.responseText).ip;
        console.log('IP ADDRESS: ' + IP_ADDRESS);
        // Log it or do something else so you'll know that the response has been received
    }
}

xhr.open('GET', 'http://jsonip.com/', true);
xhr.send();

过了一会儿,你会在控制台中看到这样的日志:

IP ADDRESS: 12.34.567.89