Emlog显示评论者IP地理信息|Emlog显示IP信息插件
发布日期: 作者:冬镜SEO
今天冬镜给大家带来的教程是Emlog显示评论者IP地理信息纯代码 文章尾部附赠Emlog显示评论者IP地理信息插件
第一步我们首先在模版目录下找到module.php文件,打开该文件并在最后面添加如下代码
<?php function convertip($ip) { $dat_path = EMLOG_ROOT.'/content/templates/你的模板文件/QQWry.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; } ?>
第二步找到你的评论代码并在你想要显示的位置重庆SEO添加如下挂载代码
<?php echo convertip($comment['ip']); ?>上一张效果图,具体的可以看下方本站留言评论 自己体验效果更加额
这次的教程到这里就结束了,大家有什么不懂的可以直接留言
冬镜会及时回复的(附上Emlog显示评论者IP地理信息插件 懒人直接下载安装插件就行)
管理员设置回复可下载
特别声明
本文为 冬镜SEO 原创发布,仅代表作者观点,不代表冬镜博客网的观点或立场,冬镜博客网仅提供信息发布平台,合作供稿、侵权删除、反馈建议请联系520@520xx.cc
评论
99条评论小财神 Lv.1 Chrome 63.0.3239.26 Windows 7 x64 Edition 回复
看看正需要
山东省临沂市 电信
柠檬加冰 Lv.1 Chrome 63.0.3239.132 Windows 7 x64 Edition 回复
山西省太原市小店区 联通
果言果语 Lv.1 Chrome 70.0.3538.110 Windows 回复
看看
陕西省西安市 电信
截路人 Lv.1 Chrome 63.0.3239.26 Windows 8.1 x64 Edition 回复
感谢分享,学习一下
河南省商丘市 联通
Kevin丶啊 Lv.1 Chrome 70.0.3538.102 Windows 回复
哈哈哈
四川省成都市 移动
小徐 Lv.1 Chrome 72.0.3608.4 Windows 回复
回复了Kevin丶啊:能用吗?
湖南省衡阳市 财经工业学院
Kevin丶啊 Lv.1 Chrome 70.0.3538.102 Windows 回复
回复了Kevin丶啊:我是没用起 服务器直接炸了 然后就删掉了
四川省成都市 电信