给定一个URL我怎样才能找出它可能来自哪里的Geo?

时间:2014-11-04 09:07:57

标签: facebook geolocation saas

我正在处理某个问题,我需要将其映射到某个国家/地区。即使我能够可靠地回答问题"这个特定网址是否与美国相关?"这应该足够了。

我很高兴有假阴性,但绝不是假阳性。

目前我正在考虑以下方法。

  • 查看该网址的域名是否位于Alexa for USA上的前1000个.com域中。
  • 检查美国用户是在Facebook或Twitter上共享该链接。

之前有没有人解决过这类问题?

2 个答案:

答案 0 :(得分:0)

您可以使用http://dev.maxmind.com/geoip/geoip2/geolite2/,但在使用此地址访问GeoIP数据库之前,您需要从您的URL域获取IP地址。

针对不同语言的GeoIP数据集有很多接口:http://dev.maxmind.com/geoip/geoip2/downloadable/#MaxMind_APIs

在这里查看一个示例NodeJS项目:

https://github.com/tobilg/GeoLocateURL

答案 1 :(得分:0)

您还可以试用免费的userinfo.io API或javascript库,并从多个地理定位数据库的合并中获取数据,以获得更高的准确性。

<script type="text/javascript" href="//cdnjs.cloudflare.com/ajax/libs/userinfo/1.0.0/userinfo.min.js"></script>
<script type="text/javascript">
UserInfo.getInfo(function(data) {
  // the "data" object contains the info
}, function(err) {
  // the "err" object contains useful information in case of an error
});
</script>

响应如下:

{
  request_date: "2014-09-18T04:11:25.154Z",
  ip_address: "192.77.237.95",
  position: {
    latitude: 37.7758,
    longitude: -122.4128,
    accuracy: 3   // This is the accuracy radius, in kilometers
  },
  continent: {
    name: "North America",
    code: "NA",
  },
  country: {
    name: "United States",
    code: "US",
  },
  city: {
    name: "San Francisco",
    code: "94103"
  }
}