我正在开发Chrome应用,我需要获取外部IP地址。
我已尝试加载外部脚本,但即使我在'content_security_policy'
文件中将源添加到manifest.json
,我也收到了错误。
我放弃了,然后我尝试向IP主机/服务网站发出XMLHttpRequest
请求,但是请求需要是异步的,即使使用{{我也无法将响应保存到变量1}}。
我总是得到setTimeout()
,因为在请求完成之前,变量显然已经设置好了。
那么请你帮我找一个获得IP的简单解决方案吗?
答案 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