1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

Emlog显示评论者IP地理位置的方法

为你的评论区加入 已评论者的IP地理位置显示 也不算什么有用的功能 想为你的博客加上这个小功能的 那就继续阅读哦 不想加的右上角X 不废话了 直接开始吧

第一步

你的模版/module.php增加如下代码 

<?php  //评论IP显示            function convertip($ip) {              $dat_path = EMLOG_ROOT.'/ip.dat'; //*数据库路径*//          if(!$fd = @fopen($dat_path, 'rb')){                 return 'IP数据库文件不存在或者禁止访问或者已经被删除!';             }             $ip = explode('.', $ip);             $ipNum = $ip[0] * 16777216 + $ip[1] * 65536 + $ip[2] * 256 + $ip[3];             $DataBegin = fread($fd, 4);             $DataEnd = fread($fd, 4);             $ipbegin = implode('', unpack('L', $DataBegin));             if($ipbegin < 0) $ipbegin += pow(2, 32);             $ipend = implode('', unpack('L', $DataEnd));             if($ipend < 0) $ipend += pow(2, 32);             $ipAllNum = ($ipend - $ipbegin) / 7 + 1;             $BeginNum = 0;             $EndNum = $ipAllNum;             while($ip1num>$ipNum || $ip2num<$ipNum) {                 $Middle= intval(($EndNum + $BeginNum) / 2);                 fseek($fd, $ipbegin + 7 * $Middle);                 $ipData1 = fread($fd, 4);                 if(strlen($ipData1) < 4) {                     fclose($fd);                     return '系统出错!';                 }                 $ip1num = implode('', unpack('L', $ipData1));                 if($ip1num < 0) $ip1num += pow(2, 32);                 if($ip1num > $ipNum) {                     $EndNum = $Middle;                     continue;                 }                 $DataSeek = fread($fd, 3);                 if(strlen($DataSeek) < 3) {                     fclose($fd);                     return '系统出错!';                 }                 $DataSeek = implode('', unpack('L', $DataSeek.chr(0)));                 fseek($fd, $DataSeek);                 $ipData2 = fread($fd, 4);                 if(strlen($ipData2) < 4) {                     fclose($fd);                     return '系统出错!';                 }                 $ip2num = implode('', unpack('L', $ipData2));                 if($ip2num < 0) $ip2num += pow(2, 32);                 if($ip2num < $ipNum) {                     if($Middle == $BeginNum) {                         fclose($fd);                         return '未知';                     }                     $BeginNum = $Middle;                 }             }             $ipFlag = fread($fd, 1);             if($ipFlag == chr(1)) {                 $ipSeek = fread($fd, 3);                 if(strlen($ipSeek) < 3) {                     fclose($fd);                     return '系统出错!';                 }                 $ipSeek = implode('', unpack('L', $ipSeek.chr(0)));                 fseek($fd, $ipSeek);                 $ipFlag = fread($fd, 1);             }             if($ipFlag == chr(2)) {                 $AddrSeek = fread($fd, 3);                 if(strlen($AddrSeek) < 3) {                     fclose($fd);                     return '系统出错!';                 }                 $ipFlag = fread($fd, 1);                 if($ipFlag == chr(2)) {                     $AddrSeek2 = fread($fd, 3);                     if(strlen($AddrSeek2) < 3) {                         fclose($fd);                         return '系统出错!';                     }                     $AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));                     fseek($fd, $AddrSeek2);                 } else {                     fseek($fd, -1, SEEK_CUR);                 }                 while(($char = fread($fd, 1)) != chr(0))                 $ipAddr2 .= $char;                 $AddrSeek = implode('', unpack('L', $AddrSeek.chr(0)));                 fseek($fd, $AddrSeek);                 while(($char = fread($fd, 1)) != chr(0))                 $ipAddr1 .= $char;             } else {                 fseek($fd, -1, SEEK_CUR);                 while(($char = fread($fd, 1)) != chr(0))                 $ipAddr1 .= $char;                        $ipFlag = fread($fd, 1);                 if($ipFlag == chr(2)) {                     $AddrSeek2 = fread($fd, 3);                     if(strlen($AddrSeek2) < 3) {                         fclose($fd);                         return '系统出错!';                     }                     $AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));                     fseek($fd, $AddrSeek2);                 } else {                     fseek($fd, -1, SEEK_CUR);                 }                 while(($char = fread($fd, 1)) != chr(0)){                     $ipAddr2 .= $char;                 }             }             fclose($fd);             if(preg_match('/http/i', $ipAddr2)) {                 $ipAddr2 = '';             }             $ipaddr = "$ipAddr1 $ipAddr2";             $ipaddr = preg_replace('/CZ88.Net/is', '', $ipaddr);             $ipaddr = preg_replace('/^s*/is', '', $ipaddr);             $ipaddr = preg_replace('/s*$/is', '', $ipaddr);             if(preg_match('/http/i', $ipaddr) || $ipaddr == '') {                 $ipaddr = '未知';             }             $ipaddr = iconv('gbk', 'utf-8//IGNORE', $ipaddr);              if( $ipaddr != '  ' )                 return $ipaddr;             else                $ipaddr = '评论者来自火星,无法或者其所在地!';                 return $ipaddr;         }  ?>

第二步

下载ip.dat 放到你的程根目录哦 不是模板根目录看清楚了啊

下载地址https://www.tx47.cn/ip.dat

第三步

放在你要显示的评论区就行 包括子评论列表哦

原文链接:https://www.qiquanji.com/post/8634.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

微信扫码关注

更新实时通知

作者:xialibing 分类:网页教程 浏览: