접근금지 ip를 특정페이지로 이동시키고 관리자에게 메일로 알려주기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

접근금지 ip를 특정페이지로 이동시키고 관리자에게 메일로 알려주기 정보

접근금지 ip를 특정페이지로 이동시키고 관리자에게 메일로 알려주기

본문

/***************************************************************
제목 : 그누보드 접근금지 ip를 특정페이지로 이동시키고 관리자에게 메일로 알려주기
작성자 : saveas 미니™
작성일 : 2010년 01월 6일
HOME : http://www.iegate.net
****************************************************************/

그누보드가 아닌 다른사이트에서 사용하던 소스입니다.
 include하여 차단ip의 접속자에게 로딩중페이지를 보여주던것인데..include 없이 개별페이지에서 작동하도록 조금 수정하였습니다.
보시고 더 좋은 의견이 있다면 댓글 남겨 주세요 ^^

그누보드 관리자모드에서 차단한 ip는 접근 불가합니다. 라는 썰렁한 글자만 출력되는 걸 보고 급히 만들어 봤습니다.

관리자모드 기본환경설정에서 차단한 ip를 특정페이지로 이동 시키고 관리자에게 메일로 알려줍니다.

# 그누보드 루트의 common.php 파일을 열어 406/ 421 라인의 die ("접근 불가합니다.");
부분을 수정합니다.
ex)  die ("<script>location.href='/loading.html'</script>");

# 차단 ip를 이동 시킬 페이지를 하나 만듭니다.
# 아래 소스에서 관리자메일 주소와 하단의 html출력부분을 자신의 홈페이지에 맞게 수정합니다.
# 수정이 완료되면 홈페이지로 업로드

ex) loading.html
++++++++++++++++++++++++++++++++++++++++++++++++++++

<?
//이메일전송 0,1중 선택 1은 전송
$notify = 1;
//관리자이멜일
$emailaddress = "관리자이메일주소"; 
 
## 0 = 로딩페이지를 보여주지않음
## 1 = 거부아이피에게 로딩페이지를 보여줌
$show_fake_html = 1;

$from_ip = getenv("REMOTE_ADDR");
$docroot = getenv("SERVER_NAME");

function send_email()
  {
   global $HTTP_REFERER, $emailaddress, $REMOTE_ADDR,
   $show_fake_html;
   $today = getdate(); 
   $month = $today[mon]; 
   $mday = $today[mday]; 
   $year = $today[year]; 
   $hours = $today[hours];
   $minutes = $today[minutes];
   $errortime = "$year/$month/$mday/ $hours:$minutes 입니다."; 

   $email_subject = "[접속거부] $REMOTE_ADDR";
 
   $message .= "다음의 아이피를 접속거부 하였습니다.^^v\n\nThe IP $REMOTE_ADDR
   접속시도 시간은";
   $message .= "$errortime.\n\n"; 
   $message .= "Referring 페이지는 다음과 같습니다.:\n$_SERVER[HTTP_REFERER]\n\n";

    if ($show_fake_html == 1)
        {
        $message .= "접속금지 아이피 대역의 사용자에게 로딩중 페이지를 보여 주었습니다..^^ㅋㅋ\n";
        }
 
   mail("$emailaddress", $email_subject, $message, "From: $emailaddress");
   return;
  }
    {
    if ($notify == 1 ) 
        {
        send_email(); 
        }
if ($show_fake_html == 1)
    {
################## 로딩 / 거짓페이지부분 ########################
?>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<style type="text/css">
<!--
body {  margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;
background-color: #FFFFFF}}
-->
</style>
</head>

<body>
<div id="loadingBar" style="position:absolute; top:45%; left:45%;">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="260" height="100">
<param name="movie" value="/loading.swf">
<!--[if !IE]> <-->
<object type="application/x-shockwave-flash" data="/loading.swf" width="260" height="100"> <p><img src="/loading.gif" alt="페이지로딩중" /></p>
</object> <!-->
<![endif]-->
</object>
</div>
</body>
</html>
<? 
    }
    exit;
    }
?>

++++++++++++++++++++++++++++++++++++++++++++++++++++

추천
4

댓글 2개

전체 4 |RSS

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT