如何使用javascript访问geo-ip
How to access geo ip look up with javascript
我想知道如何使用JavaScript使用此服务的输出。
它不是有效的JSON
http://geoiplookup.wikimedia.org/
编辑以下是我希望检索数据的方式:
$.ajax('http://geoiplookup.wikimedia.org/', {
crossDomain:true,
success:function(data,text,xhqr){
alert(data);
},
error:function(jqXHR, textStatus){
console.log(textStatus);
}
});
我看到它的响应包含一个字符串,可以用简单的JS轻松处理。试试这个。
var geoStr = 'Geo = {"city":"Woodbury","country":"US","lat":"39.824001","lon":"-75.131798","IP":"98.110.51.114","netmask":"24"};';
var geoJSON = geoStr.split('=')[1];
geoJSON = $.parseJSON(geoJSON.substring(0, geoJSON.length -1));
console.log(geoJSON);
工作演示
jQuery和AJAX将发挥作用。正如ShankarSangoli所说,这将跨领域工作。下面是一个工作示例:
var query = "select * from html where url='http://geoiplookup.wikimedia.org'"
var encodedQuery = encodeURIComponent(query.toLowerCase()),
url = 'http://query.yahooapis.com/v1/public/yql?q=' + encodedQuery + '&format=json&diagnostics=true&callback=?';
$.ajax({
dataType: "json",
url: url,
async: false,
success: function (data) {
var w = data.query.results.body.p;
var geoJSON = w.split('=')[1];
geoJSON = $.parseJSON(geoJSON);
var latitude = geoJSON.lat;
var longitude = geoJSON.lon;
console.log('Geo IP: ('+ latitude + ' - ' + longitude +')');
}
});
如果你正在使用HTML5地理位置回退方法,你也可以尝试这些链接:http://www.geoplugin.net/json.gphttp://freegeoip.net/json/
相关文章:
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- 从远程脚本获取用户IP
- JavaScript Pub/Sub属性访问问题
- 我能得到访问我网站的当地公共ip地址吗
- 如何存储最近访问过我网站的 100 个 IP 地址
- 仅允许使用JavaScript / jQuery访问特定IP的网站
- 其他人如何使用Apache Tomcat 7访问我的本地javascript应用程序(通过我的IP地址)
- 如何将网页访问限制为每个ip 1个用户
- 创建一个脚本,将我自动登录到由IP url访问的网站上;单击“确定登录”;
- Node.js无法从外部IP访问
- 如何使用javascript访问geo-ip
- Javascript只在页面刷新后与ip一起工作,在使用dns进行刷新访问之前
- 通过PHP中的AJAX请求从哪个IP访问页面
- 使用客户端IP作为cookie,识别重复访问并在第一次访问后显示消息
- 当我试图在windows 7上使用tomcat访问我的应用程序时,IP地址错误
- 使用机器IP访问localhost会导致Ajax调用失败
- 我希望仅通过选定的 IP 地址访问网站上的内容