1
0

iplogs.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. /**
  3. * 添加方法日志,和IP限制判断
  4. */
  5. function ipwhiteshow($ip, $rock){
  6. $iplist = ''.ROOT_PATH.'/config/iplist.php';
  7. $bool = 0;
  8. if(file_exists($iplist)){
  9. $iparr = require($iplist);
  10. }else{
  11. $iparr = array(
  12. 'blackip' => '',
  13. 'whiteip' => ''
  14. );
  15. }
  16. //白名单判断
  17. $whiteip = $iparr['whiteip'];
  18. if($whiteip!=''){
  19. $whiteipa = explode(',', $whiteip);
  20. foreach($whiteipa as $ips){
  21. $bo = strpos($ip, $ips);
  22. if($bo===0 || $ips=='*'){
  23. $bool = 1; //可以访问
  24. break;
  25. }
  26. }
  27. }
  28. //黑名单判断
  29. if($bool==0){
  30. $blackip = $iparr['blackip'];
  31. if($blackip!=''){
  32. $blackipa = explode(',', $blackip);
  33. foreach($blackipa as $ips){
  34. $bo = strpos($ip, $ips);
  35. if($bo===0 || $ips=='*'){
  36. $bool = 2;//不能访问
  37. break;
  38. }
  39. }
  40. }
  41. }
  42. //创建访问日志
  43. if(getconfig('accesslogs')){
  44. $str = '';
  45. foreach($_SERVER as $k=>$v)$str.='['.$k.']:'.$v.chr(10).'';
  46. $str1 = '';
  47. foreach($_GET as $k=>$v)$str1.='['.$k.']:'.$v.chr(10).'';
  48. $str2 = '';
  49. foreach($_POST as $k=>$v)$str2.='['.$k.']:'.$v.chr(10).'';
  50. $act = arrvalue($_SERVER,'REQUEST_METHOD');
  51. if($act=='POST' && $str2==''){
  52. $str2 = arrvalue($GLOBALS, 'HTTP_RAW_POST_DATA');
  53. }
  54. $logs = ''.UPDIR.'/logs/'.date('Y-m-d').'/'.date('H').'/'.date('H.i.s').'_'.$act.'_'.$ip.'_'.rand(100,999).'.log';
  55. $logstr = '[datetime]:'.$rock->now.'
  56. [URL]:'.$rock->nowurl().'
  57. [ACTION]:'.$act.'
  58. [IP]:'.$ip.'
  59. [GET]
  60. '.$str1.'
  61. [POST]
  62. '.$str2.'
  63. [SERVER]
  64. '.$str.'
  65. ';
  66. $rock->createtxt($logs, $logstr);
  67. }
  68. if($bool==2){
  69. $logs = ''.UPDIR.'/logs_access/'.date('YmdHis').'_'.rand(100,999).'.log';
  70. $logstr = '[datetime]:'.$rock->now.''.chr(10).'[URL]:'.$rock->nowurl().''.chr(10).'[IP]:'.$ip.'';
  71. $rock->createtxt($logs, $logstr);
  72. exit('您IP['.$ip.']禁止访问我们站点,有问题请联系我们');
  73. }
  74. }
  75. function ipwhiteshows($ips, $rock){
  76. $ipa = explode(',', $ips);
  77. foreach($ipa as $ip)ipwhiteshow($ip, $rock);
  78. }
  79. ipwhiteshows($rock->ip, $rock);
粤ICP备19079148号