如何使用pygeoip从国家和地区代码获取纬度和经度

0 投票
1 回答
1533 浏览
提问于 2025-04-18 05:07

我有一些城市和地区的代码,像这样:

region_code:H9
country_code:GB

这些城市和地区的代码是通过GeoIP从某个时间点的IP地址获取的。不过,我没有保留那个IP地址。我觉得应该可以通过这些信息在GeoLite City数据库中查找并获取经度和纬度,但我在pygeoip这个工具里没找到直接的方法。有没有人知道怎么做?

1 个回答

1

GeoIP City 是一个可以把 IP 地址转换成地理位置(包括经纬度)的工具。举个例子:

>>> gi = pygeoip.GeoIP('GeoIPCity.dat')
>>> gi.record_by_addr('64.233.161.99')
{
    'city': u'Mountain View',
    'region_code': u'CA',
    'area_code': 650,
    'time_zone': 'America/Los_Angeles',
    'dma_code': 807,
    'metro_code': 'San Francisco, CA',
    'country_code3': 'USA',
    'latitude': 37.41919999999999,
    'postal_code': u'94043',
    'longitude': -122.0574,
    'country_code': 'US',
    'country_name': 'United States',
    'continent': 'NA'
}
>>> gi.time_zone_by_addr('64.233.161.99')
'America/Los_Angeles'

不过,它并不能把地区代码转换成坐标。如果你需要这个功能,我建议你使用 GeoNames

撰写回答