BOARD

팁·활용

그누보드 작성자 IP 주소 마스킹 및 표시 설정 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 3회 작성일 26-10-12 15:00

본문

그누보드 작성자 IP 주소 마스킹 및 표시 설정 방법

그누보드 5 게시판과 댓글 목록에서 작성자 IP 주소의 일부를 별표 등 원하는 문자로 마스킹 처리하는 설정 파일 경로와 수정 방법을 알아봅니다.

그누보드 작성자 IP 주소 마스킹 및 표시 설정 방법

그누보드에서 게시판 글보기 및 댓글 목록에 출력되는 작성자 IP 주소의 마스킹 형식과 문자를 변경하려면 /config.php 파일을 수정해야 합니다.

1. 설정 파일 수정 위치

/config.php 파일 내에 정의된 G5_IP_DISPLAY 상수를 변경하여 IP 숨김 형태와 문자를 조정할 수 있습니다.

define('G5_IP_DISPLAY', '\\1.♡.\\3.\\4');
  • \\1, \\2, \\3, \\4는 각각 IPv4 주소의 첫 번째, 두 번째, 세 번째, 네 번째 옥텟에 대응됩니다.
  • 표시할 부분은 번호 그대로 두고, 숨길 부분은 ♡나 * 등 원하는 문자로 지정할 수 있습니다.

2. 설정 예시

  • 기본 설정 (세 번째 옥텟을 하트 기호로 숨김):define('G5_IP_DISPLAY', '\\1.♡.\\3.\\4'); (예: 123.♡.789.012)
  • 별표 문자로 변경:define('G5_IP_DISPLAY', '\\1.*.\\3.\\4');
  • 별표를 3개 연속으로 표시:define('G5_IP_DISPLAY', '\\1.***.\\3.\\4');
  • 아이피 마지막 부분을 별표로 변경:define('G5_IP_DISPLAY', '\\1.\\2.\\3.*');
  • 여러 부분 동시 변경 (마지막 두 부분 숨김):define('G5_IP_DISPLAY', '\\1.\\2.*.*');

3. 참고 사항 및 확인 방법

  • 동작 방식: 게시판 글보기(bbs/board.php)와 댓글 목록(bbs/view_comment.php) 파일에서 preg_replace 함수를 통해 일반 회원 및 비로그인 사용자에게 해당 마스킹 규칙이 적용됩니다.
  • 관리자 화면: 관리자로 로그인한 상태에서는 마스킹이 적용되지 않고 원래 IP가 그대로 출력됩니다. 따라서 설정을 변경한 뒤 올바르게 마스킹이 적용되었는지 확인하려면 로그아웃하거나 일반 회원 계정으로 로그인하여 게시판을 확인해야 합니다.

관리자 화면에서 IP가 마스킹되지 않는 이유

그누보드 기본 로직상 관리자로 로그인한 상태에서는 IP 주소가 마스킹되지 않고 원래 IP 그대로 출력되도록 설계되어 있습니다.

확인 및 테스트 방법

  • 관리자 계정으로 로그인한 상태가 아니라 로그아웃하거나 일반 회원 계정으로 로그인한 후 게시판 글보기 및 댓글 목록을 확인해야 마스킹이 정상적으로 적용된 모습을 볼 수 있습니다.
  • 관련 파일인 bbs/board.php 및 bbs/view_comment.php 내부 코드에서도 관리자가 아닐 때만 preg_replace 함수를 통해 G5_IP_DISPLAY 설정에 따른 IP 숨김 처리가 동작하도록 구현되어 있습니다.

게시판 및 댓글 목록 IP 마스킹 처리 코드

그누보드에서 게시판 글보기 및 댓글 목록의 IP 마스킹은 preg_replace 함수를 사용하여 /config.php에 정의된 G5_IP_DISPLAY 규칙을 적용하는 방식으로 처리됩니다.

주요 처리 파일 및 코드

  1. 게시판 글보기 (bbs/board.php)
    • 관리자가 아닌 경우, 작성자의 IP($write['wr_ip'])를 대상으로 정규식 치환을 수행합니다.
    • 코드 예시:
    $ip = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", G5_IP_DISPLAY, $write['wr_ip']);
  2. 댓글 목록 (bbs/view_comment.php)
    • 관리자가 아닌 경우, 댓글 작성자의 IP($row['wr_ip'])를 대상으로 동일한 정규식 치환을 수행합니다.
    • 코드 예시:
    $list[$i]['ip'] = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", G5_IP_DISPLAY, $row['wr_ip']);

작동 원리

  • preg_replace 함수는 IP 주소의 4개 옥텟을 각각 ([0-9]+) 패턴으로 인식합니다.
  • 이 패턴은 G5_IP_DISPLAY 상수에 설정된 형식(예: \1.♡.\\3.\\4)에 따라 치환됩니다.
  • \1, \2, \3, \4는 각각 IP 주소의 첫 번째부터 네 번째 자리를 의미하며, 이 자리에 원하는 마스킹 문자(별표 등)를 조합하여 출력합니다.

상황별 판단 및 행동 가이드

내 상황선택 기준다음 행동
IP 마스킹 형식(문자·범위) 변경/config.php 내 G5_IP_DISPLAY 상수 수정define('G5_IP_DISPLAY', '\1.*.\3.\4');와 같이 원하는 마스킹 규칙으로 수정
마스킹 적용 여부 확인관리자 로그인 여부로그아웃 또는 일반 회원 계정으로 로그인 후 게시판 글보기·댓글 목록 확인
특정 옥텟 마스킹 처리\1~\4 옥텟 대응 위치 확인숨길 위치에 * 등 원하는 문자를 지정하여 설정값 변경

실전 FAQ

Q. 관리자 화면에서도 IP가 숨겨지나요?

  • 예외: 그누보드 기본 로직상 관리자로 로그인한 상태에서는 IP가 마스킹되지 않고 전체가 노출됩니다. 이는 시스템 설계에 따른 동작이므로 오류가 아닙니다.
  • 대안: 마스킹 적용 여부를 테스트하려면 반드시 로그아웃하거나 일반 회원 계정으로 접속하여 확인하십시오.

Q. 특정 게시판만 마스킹을 다르게 적용할 수 있나요?

  • 제한: /config.php의 G5_IP_DISPLAY 설정은 사이트 전체에 적용됩니다. 특정 게시판에만 다른 규칙을 적용하려면 bbs/board.php 등의 소스 코드를 직접 수정하여 조건문을 추가해야 하므로, 전역 설정 변경보다 복잡한 작업이 필요합니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.