2012-02-21 83 views
2

有人可以举例说明如何使用IP查找而不是地理定位在JavaScript中进行国家级地理定位?使用IP查找JavaScript的国家级地理定位?

我一直对JSONP跨站点限制犯规,并且我还没有在StackOverflow上找到好的答案。我希望这样的事情:

$.getJSON("http://freegeoip.net/json/", function(rs){ 
    if (rs.country_name) { 
     alert(rs.ip, rs.country_name); 
    } 
    }) 
    .error(function(e){ 
    }); 

但这是不允许的,因为它不是JSONP。有谁知道一个(最好是免费的)JSONP服务?它不一定是绝对防弹的。

+0

之前有人建议:我不想使用HTML5(或不是HTML5,但你知道我的意思)地理定位。 – Richard 2012-02-21 21:57:58

回答

3

只需添加回调参数即可。

从freegeoip网页:

JSON回调是通过将回调参数的查询字符串

+0

谢谢,没有发现! – Richard 2012-02-22 11:45:13

+0

或者您可以使用其他地理位置API,如我们的https://ip-api.io/ – 2017-08-09 20:39:43

1

http://geoiplookup.wikimedia.org/会像jsonp服务(它不是真正的jsonp),但我不确定是否称它为“免费”。他们不会喜欢从其他网站的重度使用...

当然,它可能甚至有优势被缓存,因为维基百科是一个经常使用的网站,但我会建议安装一个自己的查找服务。

+0

很好找!这很容易使用。只需创建一个新的'script'元素并将其设置为源!真棒。但是,如果您期望大容量,或者如果您从您的网站获利,则最好不要使用此功能。 – caleb 2012-02-21 22:11:21

+0

你一定要在这里小心 - 我找不到有关第三方使用此域名的任何政策,但我怀疑维基媒体希望为每个人提供IP查询。此外,完全轶事,但维基媒体的位置对我来说是700英里; Maxmind的错误只有2.5米。 – josh3736 2012-02-21 22:19:01

1

你可以使用这个免费服务的支持,它的快速和也适用于HTTPS。

$.get("https://api.teletext.io/api/v1/geo-ip", function(response) { 
    console.log(response); 
});