매뉴얼

Rhymix\Framework\Filters\IpFilter

이 클래스는 IP 주소를 필터링하고, IP 주소 범위를 검사하는 기능을 제공합니다. 라이믹스는 IP 주소를 기반으로 방문자를 차단하거나 제재하는 기능을 제공하지 않지만, 서드파티 자료에서 이 클래스를 활용하여 다양한 기능을 구현할 수 있습니다.

inRange() #

public static function inRange(
    string $ip,
    string $range
): bool

주어진 IP 주소가 특정 대역에 속하는지 확인합니다. IP 대역의 표기 방법에 대해서는 validateRange() 메소드의 설명을 참고하세요.

inRanges() #

public static function inRanges(
    string $ip,
    array $ranges
): bool

주어진 IP 주소가 여러 대역 중 하나에 속하는지 확인합니다. 주어진 대역 중 하나라도 일치하면 true를 반환합니다.

validateRange() #

public static function validateRange(string $range): bool

이 클래스가 처리할 수 있는 유효한 형식으로 표현된 IP 대역인지 확인합니다.

라이믹스는 아래와 같은 IP 대역 표기를 지원합니다.

표기 방법 예시
IPv4 주소 192.168.0.42
IPv4 CIDR 192.168.0.0/24 (권장)
IPv4 범위 192.168.0.1-192.168.0.255
IPv4 와일드카드 192.168.0.*, 192.168.*.*, 192.168.*, 192.168.*.42
IPv6 주소 2001:0db8:85a3:0000:0000:1234:5678:abcd
IPv6 CIDR 2001:0db8:85a3:0000::/64 (권장)

범위 및 와일드카드 표기는 XE 1.x에서 지원하던 것을 물려받은 것으로, 하위 호환을 위해 IPv4 범위에서만 지원합니다.

validateRanges() #

public static function validateRanges(array $ranges): bool

배열로 주어진 다수의 IP 대역이 모두 유효한지 확인합니다. 주어진 대역이 모두 유효해야 true를 반환합니다.

getCloudFlareRealIP() #

public static function getCloudFlareRealIP()

Cloudflare를 통해 접속한 사용자의 실제 IP 주소를 반환합니다. 라이믹스는 사용자의 IP 주소와 Cloudflare의 CF-Connecting-IP 헤더를 비교하여 실제 IP 주소를 반환합니다.

일반적으로 이 작업은 라이믹스 초기화 과정에서 이루어지므로, 이 메소드를 직접 호출할 필요는 없습니다. 변환된 IP 주소는 RX_CLIENT_IP 상수에 저장되며, 일반적으로 이 상수를 사용하는 것을 권장합니다. 원본 데이터가 담겨 있는 $_SERVER['REMOTE_ADDR']를 직접 참조하는 것은 권장하지 않습니다.