信呼OA版本v2.3.8
This commit is contained in:
88
config/iplogs.php
Normal file
88
config/iplogs.php
Normal file
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
/**
|
||||
* 添加方法日志,和IP限制判断
|
||||
*/
|
||||
function ipwhiteshow($ip, $rock){
|
||||
$iplist = ''.ROOT_PATH.'/config/iplist.php';
|
||||
$bool = 0;
|
||||
if(file_exists($iplist)){
|
||||
$iparr = require($iplist);
|
||||
}else{
|
||||
$iparr = array(
|
||||
'blackip' => '',
|
||||
'whiteip' => ''
|
||||
);
|
||||
}
|
||||
|
||||
//白名单判断
|
||||
$whiteip = $iparr['whiteip'];
|
||||
if($whiteip!=''){
|
||||
$whiteipa = explode(',', $whiteip);
|
||||
foreach($whiteipa as $ips){
|
||||
$bo = strpos($ip, $ips);
|
||||
if($bo===0 || $ips=='*'){
|
||||
$bool = 1; //可以访问
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//黑名单判断
|
||||
if($bool==0){
|
||||
$blackip = $iparr['blackip'];
|
||||
if($blackip!=''){
|
||||
$blackipa = explode(',', $blackip);
|
||||
foreach($blackipa as $ips){
|
||||
$bo = strpos($ip, $ips);
|
||||
if($bo===0 || $ips=='*'){
|
||||
$bool = 2;//不能访问
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//创建访问日志
|
||||
if(getconfig('accesslogs')){
|
||||
$str = '';
|
||||
foreach($_SERVER as $k=>$v)$str.='['.$k.']:'.$v.chr(10).'';
|
||||
|
||||
$str1 = '';
|
||||
foreach($_GET as $k=>$v)$str1.='['.$k.']:'.$v.chr(10).'';
|
||||
|
||||
$str2 = '';
|
||||
foreach($_POST as $k=>$v)$str2.='['.$k.']:'.$v.chr(10).'';
|
||||
$act = arrvalue($_SERVER,'REQUEST_METHOD');
|
||||
if($act=='POST' && $str2==''){
|
||||
$str2 = arrvalue($GLOBALS, 'HTTP_RAW_POST_DATA');
|
||||
}
|
||||
|
||||
$logs = ''.UPDIR.'/logs/'.date('Y-m-d').'/'.date('H').'/'.date('H.i.s').'_'.$act.'_'.$ip.'_'.rand(100,999).'.log';
|
||||
$logstr = '[datetime]:'.$rock->now.'
|
||||
[URL]:'.$rock->nowurl().'
|
||||
[ACTION]:'.$act.'
|
||||
[IP]:'.$ip.'
|
||||
[GET]
|
||||
'.$str1.'
|
||||
[POST]
|
||||
'.$str2.'
|
||||
[SERVER]
|
||||
'.$str.'
|
||||
';
|
||||
$rock->createtxt($logs, $logstr);
|
||||
}
|
||||
|
||||
|
||||
if($bool==2){
|
||||
$logs = ''.UPDIR.'/logs_access/'.date('YmdHis').'_'.rand(100,999).'.log';
|
||||
$logstr = '[datetime]:'.$rock->now.''.chr(10).'[URL]:'.$rock->nowurl().''.chr(10).'[IP]:'.$ip.'';
|
||||
$rock->createtxt($logs, $logstr);
|
||||
exit('您IP['.$ip.']禁止访问我们站点,有问题请联系我们');
|
||||
}
|
||||
}
|
||||
|
||||
function ipwhiteshows($ips, $rock){
|
||||
$ipa = explode(',', $ips);
|
||||
foreach($ipa as $ip)ipwhiteshow($ip, $rock);
|
||||
}
|
||||
ipwhiteshows($rock->ip, $rock);
|
||||
Reference in New Issue
Block a user