首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自geoLite2 IP数据库的不正确结果

来自geoLite2 IP数据库的不正确结果
EN

Stack Overflow用户
提问于 2014-10-07 11:09:46
回答 4查看 4K关注 0票数 4

使用最新的GeoLite2 IP数据库搜索IP 54.73.154.147,结果如下:

美国西雅图

但IP地址实际上来自爱尔兰的AWS服务器。如果我向GeoIP精确测试页面(https://www.maxmind.com/en/geoip-demo)提交相同的IP,则得到正确的结果:

爱尔兰爱尔兰都柏林

有人能想到为什么我会得到如此错误的结果吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-03-26 01:03:33

你之所以会得到两种不同的结果,是因为它们只是不同版本的数据库,而你在它们的网络界面上搜索的结果显然更准确,也更最新。GeoLite2不是很精确,您需要每周更新它才能收到准确的信息,因为IP地址每分钟都在变化。例如,我购买了一些IP地址,我可以使用一个今天和明天转移到另一个我喜欢。更大的公司更经常这样做,而且这些IP地址大部分可以从一个国家转移到另一个国家。

如果您只想继续使用MaxMind产品,可以使用这个url请求json:

https://www.maxmind.com/geoip/v2.1/city/{{ip.address}}?use-downloadable-db=1&demo=1

请注意,理论上每天只允许25次请求(但很容易被破解)。不要问我如何破解它,因为它违反了Stackoverflow的规则。

票数 4
EN

Stack Overflow用户

发布于 2014-10-09 17:05:48

正如迈克尔所指出的那样,如果海泡石的数据库是错误的,你什么也做不了。这是她的另一种选择:userinfo.io。它实际上是几个数据库的合并,所以它可以更精确。

我用你的IP测试了它,它返回了正确的位置。

代码语言:javascript
复制
{
  "ip_address": "54.73.154.147",
  "position": {
    "latitude": 53.3331,
    "longitude": -6.2489
  },
  "continent": {
    "name": "Europe",
    "code": "EU"
  },
  "country": {
    "name": "Ireland",
    "code": "IE"
  },
  "city": {
    "name": "Dublin"
  }
}

您目前可以使用javascript包装器java包装器

票数 1
EN

Stack Overflow用户

发布于 2018-03-30 11:29:49

我也有同样的问题。我的EC2服务器在爱尔兰,但是geoip显示给我们。

我转向了freegeoip.net,这对于这个案例来说似乎是正确的。

PHP中的一个使用示例:

代码语言:javascript
复制
$json_data = file_get_contents("http://freegeoip.net/json/" . $hostname);
return json_decode($json_data, TRUE);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26234647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档