如何针对 Geonames 数据执行 Geo IP 或邮政编码查找

How to do Geo IP or postcode lookup against Geonames data

我正在使用本地免费提供的 geonames 数据在我的一个网站上的注册阶段进行自动完成搜索。

我无法找到使表单更加用户友好的最佳方法,方法是根据用户的 IP 地址自动选择地理名称,并且还能够根据 postcode data 查找地理名称。

问题是我看不到一种方法可以轻松地将 IP 范围或邮政编码 link 到地理名称。那么这里的最佳做法是什么?我是否只是 运行 一个单独的查询来通过 long/lat 根据邮政编码或 IP 地址查找最近的地理名称?

您没有提及如何定位 IP 地址,但 MaxMind GeoIP2 和 GeoLite2 数据库提供了 geoname_id 位置。参见,例如 CSV docs。二进制数据库提供相同的信息。