Javascript 从IP获取地理位置,并使用;ipinfodb";
我知道很好的javascript,但对json完全是新手,需要做以下工作: 使用“ipinfodb”从IP获取地理位置 像这样的回答:Javascript 从IP获取地理位置,并使用;ipinfodb";,javascript,json,geolocation,ip,Javascript,Json,Geolocation,Ip,我知道很好的javascript,但对json完全是新手,需要做以下工作: 使用“ipinfodb”从IP获取地理位置 像这样的回答: OK;;174.88.229.95;CA;CANADA;QUEBEC;MONTREAL;H1A 0A1;45.5088;-73.5878;-04:00 我找到了很多代码,但都似乎很复杂,而且很长,有更多的选项,比如将结果保存在cookies中 我需要最少必要的代码来检索这些信息 为了把它们保存在饼干里,还有更多,我想在我死后自己去照顾它。。(我不喜欢写我不懂的
OK;;174.88.229.95;CA;CANADA;QUEBEC;MONTREAL;H1A 0A1;45.5088;-73.5878;-04:00
我找到了很多代码,但都似乎很复杂,而且很长,有更多的选项,比如将结果保存在cookies中
我需要最少必要的代码来检索这些信息
为了把它们保存在饼干里,还有更多,我想在我死后自己去照顾它。。(我不喜欢写我不懂的代码)
最好是一个简单的函数,它以字符串或数组的形式返回这些信息,如下所示
function getLocFromIP(IP){
(js + json code)
return result;
}
非常感谢
谢谢大家的回复,我正在尝试筛选出解决方案,虽然效果不错,但我对结果还不太满意。。 我将在这里重新表述我的问题: 我是否可以用最简单的方法(javascript)从ip检索地理位置,这意味着不需要json或jquery。。 ajax将是完美的,但它在域间(不同域)不起作用 再次感谢
OK;;174.88.230.88;CA;CANADA;QUEBEC;MONTREAL;H1A 0A1;45.5088;-73.5878;-04:00
您发布的示例不是有效的JSON(您可以在类似的地方检查某些内容是否是有效的JSON)。这就是说,看看ipinfo数据库网站,他们似乎有办法使用API获得JSON输出(请参阅) 一旦获得了有效的JSON,就可以使用。有关使用它的一些示例,请参见 所以总的想法是
function getLocFromIP(IP){
//(js code to use ipinfodb API to get valid JSON reponse)
//(js code using JSON.parse to parse the received JSON reponse)
//(js code to get whatever you want as the result)
return result;
}
作为补充说明,如果您使用jQuery,您还可以使用jQuery.parseJSON解析JSON(请参阅),如果您预期客户端使用的是可能不支持JSON.parse的旧浏览器,这将更加可靠。需要一些查询字符串,如ip地址之外的&format=JSON&callback=?
,以获取JSON
然后得到如下json:
{
"statusCode": "OK",
"statusMessage": "",
"ipAddress": "175.108.204.0",
"countryCode": "JP",
"countryName": "JAPAN",
"regionName": "TOKYO",
"cityName": "TOKYO",
"zipCode": "214-002",
"latitude": "35.6149",
"longitude": "139.581",
"timeZone": "+09:00"
}
下面是一个示例代码(感谢@iveoak提供了良好的模板):
函数getLocFromIP(IP){
//(使用ipinfodb API获取有效JSON响应的js代码)
var url='1〕http://api.ipinfodb.com/v3/ip-city/?key=&ip=“+ip+”&format=json&callback=?”;
var response=$.getJSON(url);//使用jQuery
//(使用JSON.parse解析接收到的JSON响应的js代码)
响应。然后(功能(位置){
变量信息=“- ”;
用于(var键入位置){
信息+='
- '+key+':'+location[key]+' '; } 信息+='
是一个相同的概念
因此,您可以从任何地方进行访问,而不需要直接处理json。您只需获取javascript对象即可
这是我的演示:
更新:
I/F与您想要的稍有不同。它使用回调函数
getLocFromIP(ip, function(result) {
// use result
});
演示返回:
OK;;175.108.204.0;JP;JAPAN;TOKYO;TOKYO;214-002;35.6149;139.581;+09:00
我希望这个基本的解决方案能让你满意
OK;;175.108.204.0;JP;JAPAN;TOKYO;TOKYO;214-002;35.6149;139.581;+09:00