자주자주 공지를 확인하세요!

라이믹스/매뉴얼/IP 주소 및 대역 표기 방식

상위 문서: 라이믹스/매뉴얼

개요[편집 / 원본 편집]

라이믹스의 관리자 로그인 허용·금지 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로 신뢰해서는 안 된다.

같이 보기[편집 / 원본 편집]

관련 운영 문서[편집 / 원본 편집]

출처[편집 / 원본 편집]

최근 바뀜

더 보기