IP 주소 및 대역 표기 방식
개요 #
이 글에서 설명하는 IP 주소 및 대역 표기 방식은 라이믹스에 내장된 대부분의 기능에 적용됩니다. 단, XE에서 가져온 후 아직 업데이트되지 않은 부분에서는 일부 형식을 인식하지 못할 수도 있습니다.
현재 적용이 완료된 부분은 아래와 같습니다.
- 관리자 로그인 허용 IP 및 관리자 로그인 금지 IP
- 디버그 허용 IP
- 사이트 잠금 기능 사용시 접근 허용 IP
- 스팸필터 모듈의 IP 차단 기능
IPv4 주소 #
예:
- 192.168.122.96
- 127.0.0.1
IPv4 대역 #
예:
- 192.168.122.*
- 192.168.*.*
- 192.168.*
- 192.168.122.0-192.168.122.255
- 192.168.0.0-192.168.255.255
- 192.168.216.0/24
- 192.168.64.0/20
- 192.168.0.0/16
IPv6 주소 #
예:
- 2001:2300:0000:0000:0000:0000:dead:beef
- 2001:2300:0:0:0:0:f00b:aa
- 2001:2300::ffff:0
- 2001:2300::
- ::1
IPv6 대역 #
예:
- 2001:2300:0000:0000:0000:0000:ffff:0000/112
- 2001:2300:0:0:3a:5b::/96
- 2001:2300::/64
- ::1/128
올바른 IP 주소인지 검증하는 방법 #
PHP 내장 함수를 사용해야 합니다. 정규표현식이나 그 밖의 방법은 권장하지 않습니다. 특히 IPv6 주소는 표기 방식이 다양하므로 함부로 해석하려고 하면 위험합니다.
올바른 IPv4 또는 IPv6 주소인지 검증하기:
$is_valid = (filter_var($ipaddress, FILTER_VALIDATE_IP) !== false);
올바른 IPv4 주소인지 검증하기:
$is_valid = (filter_var($ipaddress, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) !== false);
올바른 IPv6 주소인지 검증하기:
$is_valid = (filter_var($ipaddress, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) !== false);
filter_var()
함수는 올바른 IP 주소인 경우 IP 주소를 그대로 반환하고, 그렇지 않은 경우 거짓을 반환하므로
위와 같이 !== false
로 비교하는 것이 좋습니다.
올바른 IP 대역인지 검증하는 방법 #
라이믹스 프레임워크의 IpFilter
클래스를 사용하여 검증합니다.
위에 나열된 방식들 중 하나로 올바르게 표기된 IP 대역이면 참을 반환합니다.
$is_valid = \Rhymix\Framework\Filters\IpFilter::validateRange($range);
검증할 대역이 여러 개인 경우 validateRanges()
메소드를 사용합니다.
모든 대역이 올바르게 표기된 경우에만 참을 반환합니다.
IP 주소가 IP 대역에 포함되어 있는지 확인하는 방법 #
라이믹스 프레임워크의 IpFilter
클래스를 사용하여 확인합니다.
주어진 IP 주소가 주어진 IP 대역에 포함되어 있는 경우 참을 반환합니다.
$in_range = \Rhymix\Framework\Filters\IpFilter::inRange($ipaddress, $range);
확인할 대역이 여러 개인 경우 inRanges()
메소드를 사용합니다.
주어진 대역 중 하나라도 해당되면 참을 반환합니다.
개요
코어 개발 참여
확장 기능 제작
테마 제작
기타 정보