这个iplocation是php的一个扩展,将ip地址库预读到内存,已二叉树的数据结构存储,所以查地址非常快。
具体安装和使用如下:
wget https://php-tokyocabinet.googlecode.com/files/php-iplocation.tar.bz2
最新可下载地址:https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/php-tokyocabinet/php-iplocation.tar.bz2
tar jxvf php-iplocation.tar.bz2
cd php-iplocation
/usr/local/webserver/php/bin/phpize
./configure –with-php-config=/usr/local/webserver/php/bin/php-config –with-iplocation
make && make install
#注:安装目录有个默认的ip地址库,37万多条ip数据,不过也可以到纯真ip下载最新的ip地址库,一个小软件,然后导出文本文件,把空格分隔换成|分隔即可
cp c_ip.txt /data/ip.dict
vi /usr/local/webserver/php/etc/php.d/iplocation.ini
[iplocation]
iplocation.dict = “/data/ip.dict”
extension=/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/iplocation.so
php端用法
看一下源码里iplocation.c,只提供了两个函数,iplocation_fetch和iplocation_count
print_r(iplocation_fetch(“202.38.64.1”));
有一点要注意,因为是预载入,所以更新ip地址库文件,要重启php-fpm,才会生效