使用IP查找在JavaScript中的国家级地理位置?

时间:2012-02-21 21:54:23

标签: javascript geolocation

有人可以举例说明如何使用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服务?它不一定绝对是防弹的。

4 个答案:

答案 0 :(得分:3)

只需添加回调参数。

来自freegeoip网页:

  

通过将回调参数添加到查询字符串

来支持JSON回调

答案 1 :(得分:2)

您可以自己制作,定期更新。以下是免费资源:http://software77.net/geo-ip/

或者,您可以使用此http://www.maxmind.com/app/javascript_city,如果您将其归功并提供返回其网站的链接,则可免费使用。{/ p>

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

您可以使用此免费服务,速度快,也适用于https。

<!DOCTYPE html>
<html lang="en">
  <head>
    <script src="/bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
    <link rel="import" href="friends-list.html">
  </head>
  <body>
    <h1>Hello Data Object Arry Binding</h1>
    <script>
      var friends = [
        {"name":"manual"},
        {"name":"john"},
        {"name":"doe","starred":true}
      ];
    </script>
    <friend-list data="friends"></friend-list>
  </body>
</html