当我使用英国IP地址时,为什么Python Geolite总是返回LA?

当我使用英国IP地址时,为什么Python Geolite总是返回LA?,python,Python,我在日本和英国的网站上测试了它,只是想看看它是否准确到了正确的国家,至少我从下面的指南中得到了相同的结果……洛杉矶美国 我正在使用GeoIP和GeoLite 因此,我上网并遵循以下快速使用指南: 然后我跳进我的终端并运行代码行…所示的示例返回一个基于LA的位置,如指南所示…到目前为止一切都很好 因此,我退出终端并打开一个编辑器,看看是否可以将其写入一个保存的.py文件中,如果需要的话,我可以使用一个命令运行该文件(至少开始运行) 我测试它似乎无论我做什么,它都会返回LA America…我所做的

我在日本和英国的网站上测试了它,只是想看看它是否准确到了正确的国家,至少我从下面的指南中得到了相同的结果……洛杉矶美国

我正在使用GeoIP和GeoLite

因此,我上网并遵循以下快速使用指南: 然后我跳进我的终端并运行代码行…所示的示例返回一个基于LA的位置,如指南所示…到目前为止一切都很好

因此,我退出终端并打开一个编辑器,看看是否可以将其写入一个保存的.py文件中,如果需要的话,我可以使用一个命令运行该文件(至少开始运行)

我测试它似乎无论我做什么,它都会返回LA America…我所做的只是将代码行写入编辑器并添加打印语句以将信息返回给我…以下是代码:

from geoip import geolite2

# IP for google.co.uk 
match = geolite2.lookup("216.58.198.163")
match is not None
print(match.country)
print(match.continent)
print(match.timezone)
print(match.subdivisions)
代码运行正常,至少返回信息,但无论测试的国家IP地址是什么,我只得到美国洛杉矶(如指南所示)

以下是我每次都能得到的:

US
NA
America/Los_Angeles
frozenset(['CA'])
>>>
有人能告诉我为什么会发生这种情况,以及如何让它显示正确的位置吗

注意:我获取IP的方法是打开我的BASH终端,只需输入:

$ host www.google.co.uk
google.co.uk has address 216.58.198.163
以及:


我找到了一个解决方案,我使用的指南没有提到GeoLite2和GeoIP需要使用最新的数据库文件(.mmdb)在Python程序中为IP地址提供地理位置

数据库是免费下载的,我还找到了一个例子来说明它的用途。我现在已经把程序写得很好了。系统会提示用户输入有效的IP,并返回相对准确的信息

我现在甚至可以获取返回的经度和纬度值,并使用网站缩小搜索范围


谢谢你的回复。我现在了解到,IP地址可以有不同的URL位置(例如www.something.co.uk地址可能不会返回英国位置,尤其是像谷歌这样在全球拥有服务器/计算机的网站)

我找到了一个解决方案,我使用的指南没有提到GeoLite2和GeoIP需要使用最新的数据库文件(.mmdb)来为Python程序中的IP地址提供地理位置

数据库是免费下载的,我还找到了一个例子来说明它的用途。我现在已经把程序写得很好了。系统会提示用户输入有效的IP,并返回相对准确的信息

我现在甚至可以获取返回的经度和纬度值,并使用网站缩小搜索范围


谢谢你的回复。我现在了解到,IP地址可以有不同的URL地址(例如www.something.co.uk地址可能不会返回英国位置,尤其是像谷歌这样在全球拥有服务器/计算机的网站)

什么让你认为216.58.198.163是“英国IP地址”?有趣的是,对我来说,
主机www.google.co.uk
主机www.google.co.jp
返回相同的值:
172.217.6.99
。我推断有许多不同的计算机提供
www.google.co.uk
,其中一台选择在请求者附近。是什么让你认为216.58.198.163是一个“英国IP地址”?有趣的是,对我来说
主机www.google.co.uk
主机www.google.co.jp
都返回相同的值:
172.217.6.99
。我推断有许多不同的计算机提供
www.google.co.uk
,其中一台选择在请求者附近。
$ host www.google.co.jp
www.google.jp has address 209.85.202.94