如果您可以直接访问服务器/命令行,则可以使用二进制格式。这提供了更好的性能,但您需要更改 PHP 配置以安装 GeoIP 扩展或 Pecl 包。然后,您可以访问一些方便的 PHP 函数:http ://www.php.net/manual/en/ref.geoip.php
完整文档在这里:http ://www.php.net/manual/en/book.geoip.php
如果您无权访问服务器配置,则可以下载 CSV 版本并将其导入 MySQL 数据库。然后,您将可以直接访问数据,并且可以编写相关查询以生成应用程序所需的结果。如果您使用的是 PHP MyAdmin MySQL 面板,您可以直接下载 CSV gz 或 zip 并上传/导入。您需要先创建表。请记住在相关列上创建索引。
GeoLite City 包含两个表格,IP block/City 和 City Locations (lat/lng)。GeoLite Country 仅包含 IP 块和国家名称。
如果您不需要 IP 数据,世界城市数据库可能更适合: http: //www.maxmind.com/en/worldcities
- 编辑
如果您只关心 geoIP 城市数据的第二个文件,以下 SQL 将创建一个包含必要列的表:
DROP TABLE IF EXISTS location;
CREATE TABLE location(
locId int(10) unsigned NOT NULL,
country char(2) NOT NULL,
region char(2) NOT NULL,
city varchar(50),
postalCode char(5) NOT NULL,
latitude float,
longitude float,
dmaCode integer,
areaCode integer,
PRIMARY KEY (locId)
);
谷歌是你的朋友: http: //odkq.com/geolitecity