QQWry 是一個(gè)php擴(kuò)展,,實(shí)現(xiàn)語言為c,。這個(gè)擴(kuò)展的作用,,就是根據(jù)ip來獲取純真數(shù)據(jù)庫(QQWry.Dat)的地址信息,。經(jīng)過和discuz,,CoolCode兩個(gè)純php版本的對(duì)比測(cè)試,,這個(gè)c實(shí)現(xiàn)的擴(kuò)展比純php的實(shí)現(xiàn)效率高6到10倍,。 目前只支持PHP5版本。 安裝 - sudo pecl install qqwry-beta或者直接下載編譯,,phpize && ./configure && make && sudo make install
- 編輯php.ini,,加入extension=qqwry.so
- 重啟http server
使用很簡(jiǎn)單,首先就是實(shí)例化,,傳入純真數(shù)據(jù)庫的文件路徑,,然後調(diào)用q方法。該方法返回一個(gè)數(shù)組,,第一個(gè)值為地址1,,例如南寧市,第二個(gè)值為地址2,,例如邕 寧區(qū)電信ADSL,。看例子吧,,一目了然,。下面的iconv是把數(shù)據(jù)從GB2312轉(zhuǎn)到UTF-8,如果你的站點(diǎn)是用GB2312,,那么這一步是不需要的,。 $qqwry=new qqwry('QQWry.Dat');
list($addr1,$addr2)=$qqwry->q('127.0.0.1'); $addr1=iconv('GB2312','UTF-8',$addr1); $addr2=iconv('GB2312','UTF-8',$addr2); echo $addr1,'|',$addr2,"\n";
$arr=$qqwry->q('222.216.47.4'); $arr[0]=iconv('GB2312','UTF-8',$arr[0]); $arr[1]=iconv('GB2312','UTF-8',$arr[1]); echo $arr[0],'|',$arr[1],"\n";
$arr=$qqwry->q('64.233.187.99'); $arr[0]=iconv('GB2312','UTF-8',$arr[0]); $arr[1]=iconv('GB2312','UTF-8',$arr[1]); echo $arr[0],'|',$arr[1],"\n";
輸出: 本機(jī)地址| 廣西南寧市|(青秀區(qū))電信ADSL 美國(guó)|加利福尼亞州Google公司
|