这是一个根据IP地址判断所在国家的插件。用处很多,显示评论者国家、阻挡垃圾评论等等。 其实这种插件有很多,比如IP to Country, 不过这个程序感觉一来效率不高,二来用起来也不是很方便。于是我写了这个插件,仅仅一个函数。

原理很简单,将IP地址范围保存到MySQL数据库中,然后通过SQL取出给定IP地址的数据,显示国家即可。

$ip = ip2long($ipaddr);
$sql = sprintf("SELECT country FROM ip2country WHERE ip_from<=%u AND ip_to>=%u", $ip, $ip);
$row = $wpdb->get_row("$sql");
return $row->country;

IP地址数据库基于IP-to-Country Database, 原数据的格式中包含了三种格式的国家代码,为了减小数据大小,我仅保留了最短的国家代码。 国家代码格式基于 ISO 3166

文件说明

ip-to-country.csv修改后的IP地址数据库
ip2country.sql ip2country表的建立SQL语句
createindex.sql ip2country索引建立语句
import-ip2country.php数据导入程序
wp-ip2country.phpIP 2 Country插件

安装方法

  1. 利用 phpMyAdmin 等工具执行 ip2country.sql,建立 ip2country 表。
  2. 将 ip-to-country.csv 和 import-ip2country.php 复制到Web服务器上,修改 import-ip2country.php 中的数据库主机、用户名、密码等。
  3. 通过浏览器访问 import-ip2country.php,即可将IP地址信息插入到数据库中。
  4. 利用 phpMyAdmin 等工具执行 createindex.sql 建立索引,以提高访问速度。
  5. 将 wp-ip2country.php 复制到 /wp-content/plugins 目录下,然后在 WordPress 控制面板中激活该插件。
  6. 在模板的适当位置调用 wp_ip2c_getcountry($_SERVER[‘REMOTE_ADDR’]) 以获取客户端的国家代码。

下载 ip2country.zip