【发布时间】:2012-01-09 21:00:28
【问题描述】:
我正在使用 MaxMind 的 GEOIPCITY 数据库的二进制版本。以下代码为我提供了我需要的有关访问者的所有信息:
include("geoipcity.inc");
include("geoipregionvars.php");
$gi = geoip_open("GeoLiteCity.dat", GEOIP_STANDARD);
print_r( geoip_db_get_all_info() );
$record = geoip_record_by_addr($gi, $user_ip);
print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . "<br /><br />";
print $record->region . " " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "<br /><br />";
print $record->city . "<br /><br />";
print $record->postal_code . "<br /><br />";
print $record->latitude . "<br /><br />";
print $record->longitude . "<br /><br />";
print $record->metro_code . "<br /><br />";
print $record->area_code . "<br /><br />";
print $record->continent_code . "<br /><br />";
geoip_close($gi);
除了网速、ISP 等之外,我真的不需要任何东西。
我的问题是,我的网站的某些部分需要显示特定州下的所有城市,或特定国家/地区的所有州/地区。例如,我需要在注册表中执行此操作。
有没有办法通过查询二进制文件来获取这些列表?还是我必须从 mysql 版本中处理所有这些?
我宁愿只使用二进制版本,因为它更快,但现在我不确定是否可以在不使用 mysql 版本的情况下显示某个城市下的所有 zip 或某个国家下的所有州等。需要两者都用吗?
http://www.maxmind.com/app/php
http://geolite.maxmind.com/download/geoip/api/php/
【问题讨论】:
标签: php mysql geolocation