특정 아이피대역을 지정해서 해당아이피대역은 내용을 안보이게 하려고합니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

특정 아이피대역을 지정해서 해당아이피대역은 내용을 안보이게 하려고합니다. 정보

특정 아이피대역을 지정해서 해당아이피대역은 내용을 안보이게 하려고합니다.

본문

특정 아이피대역을 지정해서 해당아이피대역은 내용을 안보이게 하려고합니다.
적용이 잘안돼서 다시올려봅니다.

제가 울트라 왕초보라 ..  적용하니 잘안돼서요..전체소스올려볼께요 적용법좀 부탁드려요
현제 이렇게 적용하고있거든요..

<?
$BLOCK_IP = array();
$BLOCK_IP[] = '000.000.000.';
$BLOCK_IP[] = '000.000.000.003';
?>


<?
if(($is_member && $member[mb_id] != '아이디' && !in_array($_SERVER['REMOTE_ADDR'], $BLOCK_IP)) || (!$is_member && !in_array($_SERVER['REMOTE_ADDR'], $BLOCK_IP))) {
?>

 내용나오는부분

 <? } ?>
  • 복사

댓글 전체

아래 조건문은 "회원이어야 하고" "mb_id는 ***가 아니어야 하고" "차단아이피에 속하지 않.아.야. 한다"로 설정한 겁니다.
if($is_member && $member[mb_id] != "아이디" && !is_block_ip($_SERVER[REMOTE_ADDR], $BLOCK_IP))

함수정의는
function is_block_ip($ip, $block_ip) {
  foreach($block_ip as $blocked) {
    if(strstr($ip, $blocked)) return 1;
  }
  return 0;
}
해당아이피는 되는데  아이피대역은 안되네요..
블락은 이렇게 했습니다.

<?
$BLOCK_IP = array();
$BLOCK_IP[] = '000.000.000.';

function is_block_ip($ip, $block_ip) {
  foreach($block_ip as $blocked) {
    if(strstr($ip, $blocked)) return 1;
  }
  return 0;
}
?>
<?
$BLOCK_IP = array();
$BLOCK_IP[] = '000.000.000.';

function is_block_ip($ip, $block_ip) {
  foreach($block_ip as $blocked) {
    if(strstr($ip, $blocked)) return 1;
  }
  return 0;
}
?>

<? if(($is_member && $member[mb_id] != 'wpfh' && !in_array($_SERVER['REMOTE_ADDR'], $BLOCK_IP)) || (!$is_member && !in_array($_SERVER['REMOTE_ADDR'], $BLOCK_IP))) { ?>

해당내용

<? } ?>

이렇게 했는데요
회원또는 비회원일경우 특정아이디또는 특정아이피와 특정아이피대역은 해당 내용을 볼수없게..

이런식인데  말씀해주신데로 조건문을
if($is_member && $member[mb_id] != "아이디" && !is_block_ip($_SERVER[REMOTE_ADDR], $BLOCK_IP))
이렇게 하니 아무런 변화가 없어서요..
위에 함수로는 한가지 전제조건이 있습니다.

그 전제조건은 바로 strstr 함수는 비교 함수입니다. 이것을 먼저 잊지 말아 주시길 빕니다.

그러므로 $BLOCK_IP[] = '000.000.000.'; 이 부분에서 만약 예를 192.168.1. 대역을 막고 싶다고 하시면
$BLOCK_IP[] = '192.168.1.' 을 입력하셔야 합니다.

아마 저의 생각으로는 $BLOCK_IP[] = '192.168.001.' 이런식으로 입력을 하신것 같습니다.
위와 같이 입력을 하셨다면 아이피 앞의 0 을 제거 후 다시 해보시기 바랍니다. 그리고 끝에 콤마(.)를 해주시는 것이 나중을 위해서 올바른 방법이라고 생각되어 집니다.
좋은 하루 되세요.
혹시 네이트온 아이디 있으시면 쪽지로 알려주시거나 쪽지로 알려드린 저의 네이트온을 추가하면 점심시간후에 작업을 봐드릴수 있습니다. ^^
© SIRSOFT
현재 페이지 제일 처음으로