공식 매뉴얼을 바탕으로 개요·사용법·예제 및 출처 작성 |
PHP 예제의 네임스페이스 구분자 표기 교정 |
||
| 37번째 줄: | 37번째 줄: | ||
<syntaxhighlight lang="php"> | <syntaxhighlight lang="php"> | ||
use | use Rhymix\Framework\Filters\IpFilter; | ||
$is_valid = IpFilter::validateRange('192.168.122.0/24'); | $is_valid = IpFilter::validateRange('192.168.122.0/24'); | ||
2026년 10월 16일 (금) 23:15 판
개요
라이믹스의 관리자 로그인 허용·금지 IP, 디버그 허용 IP, 사이트 잠금의 접근 허용 IP, 스팸필터의 IP 차단 등에서 사용하는 주소·대역 표기 방식이다. XE에서 이어진 일부 기능은 모든 형식을 지원하지 않을 수 있으므로 해당 설정의 설명을 확인한다.
표기 형식
| 종류 | 예 | 의미 |
|---|---|---|
| IPv4 단일 주소 | 192.168.122.96 |
주소 하나 |
| IPv4 와일드카드 | 192.168.122.* |
마지막 구간 전체 |
| IPv4 와일드카드 축약 | 192.168.* |
뒤쪽 구간 전체 |
| IPv4 시작-끝 | 192.168.122.0-192.168.122.255 |
지정한 범위 |
| IPv4 CIDR | 192.168.216.0/24 |
접두 길이 24비트인 대역 |
| IPv6 단일 주소 | 2001:2300::ffff:0, ::1 |
축약 표기 가능 |
| IPv6 CIDR | 2001:2300::/64, ::1/128 |
접두 길이로 대역 지정 |
IPv6는 연속한 0 구간을 ::로 줄일 수 있어 문자열 모양만으로 비교하면 안 된다. 한 주소와 그 주소를 포함하는 대역은 서로 다른 입력 형식이다.
단일 IP 검증
공식 매뉴얼은 정규표현식을 직접 작성하는 대신 PHP의 filter_var()를 사용하도록 안내한다. 성공 시 주소 문자열, 실패 시 false가 반환되므로 엄격하게 비교한다.
$is_valid = filter_var($ip, FILTER_VALIDATE_IP) !== false;
$is_ipv4 = filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) !== false;
$is_ipv6 = filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) !== false;
대역 검증과 포함 여부
라이믹스의 Rhymix\Framework\Filters\IpFilter를 사용한다.
use Rhymix\Framework\Filters\IpFilter;
$is_valid = IpFilter::validateRange('192.168.122.0/24');
$included = IpFilter::inRange('192.168.122.96', '192.168.122.0/24');
여러 대역은 validateRanges()와 inRanges()를 사용한다. 전자는 모든 대역이 유효해야 참이고, 후자는 하나 이상의 대역에 주소가 포함되면 참이다. 실제 인자 형태는 사용 중인 버전의 클래스 명세를 확인한다.
운영 시 확인
허용 목록을 바꾸기 전 현재 관리자의 접속 IP가 포함되는지 확인한다. 역방향 프록시나 CDN을 사용한다면 라이믹스가 인식한 클라이언트 IP가 실제 접속자와 일치하는지도 점검한다. HTTP 헤더 값을 검증 없이 접속자 IP로 신뢰해서는 안 된다.
같이 보기
- 라이믹스/매뉴얼/라이믹스 프레임워크 — IpFilter, RX_CLIENT_IP
- 라이믹스/보안
출처
이 문서는 라이믹스 공식 매뉴얼을 바탕으로 설명과 예제를 정리하였다. 공식 매뉴얼은 CC BY-SA 4.0으로 배포된다. 원문의 기여 이력은 rhymix-docs 저장소에서 확인할 수 있다.