>  기사  >  백엔드 개발  >  CIDR 서브넷에 IP 주소가 포함되어 있는지 확인하는 방법은 무엇입니까?

CIDR 서브넷에 IP 주소가 포함되어 있는지 확인하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-18 19:35:03599검색

How to Verify IP Address Inclusion in a CIDR Subnet?

CIDR 서브넷에 IP 주소 포함 확인

IPv4 주소가 지정된 CIDR 서브넷에 속하는지 확인하려면 다음과 같은 간단한 방법을 사용하세요. 다음 단계:

긴 정수로 변환:

  • ip2long() 함수를 사용하여 IP 주소와 서브넷 범위를 긴 정수로 변환합니다.

서브넷 마스크 파생:

  • 서브넷 마스크가 명시적으로 제공되지 않은 경우(/xx) 기본 마스크는 /32로 가정합니다.
  • 왼쪽 시프트 1~32에서 마스크 길이를 뺀 값을 적용하여 서브넷 마스크를 계산합니다.

비트별 비교:

  • 수행 IP 긴 정수와 서브넷 마스크 사이의 비트 AND 연산.
  • 결과가 서브넷 긴 정수와 같은지 확인하세요.

구현:

다음 PHP 함수는 이 논리를 캡슐화합니다.

<code class="php">function cidr_match($ip, $range)
{
    list ($subnet, $bits) = explode('/', $range);
    if ($bits === null) {
        $bits = 32;
    }
    $ip = ip2long($ip);
    $subnet = ip2long($subnet);
    $mask = -1 << (32 - $bits);
    $subnet &= $mask;
    return ($ip & $mask) == $subnet;
}</code>

위 내용은 CIDR 서브넷에 IP 주소가 포함되어 있는지 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.