다음을 통해 공유


ipv4_is_in_any_range()

적용 대상: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

IPv4 문자열 주소가 지정된 IPv4 주소 범위에 있는지 여부를 확인합니다.

성능 팁

참고 항목

128개 이상의 검색어를 사용하는 경우 텍스트 인덱스 조회 최적화가 비활성화되어 쿼리 성능이 저하될 수 있습니다.

구문

ipv4_is_in_any_range(Ipv4Address , Ipv4Range [ , Ipv4Range ...])

ipv4_is_in_any_range(Ipv4Address , Ipv4Ranges )

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

이름 Type 필수 설명
Ipv4Address string ✔️ IPv4 주소를 나타내는 식입니다.
Ipv4Range string ✔️ IP 접두사 표기법으로 작성된 IPv4 범위 또는 IPv4 범위 목록입니다.
Ipv4Ranges dynamic ✔️ IP 접두사 표기법으로 작성된 IPv4 범위를 포함하는 동적 배열입니다.

참고 항목

하나 이상의 IPv4Range 문자열 또는 IPv4Ranges 동적 배열이 필요합니다.

IP 접두사 표기법

IP 접두사 표기법(CIDR 표기법이라고도 함)은 IP 주소 및 연결된 네트워크 마스크를 나타내는 간결한 방법입니다. 형식입니다 <base IP>/<prefix length>. 여기서 접두사 길이는 netmask에서 선행 1비트 수입니다. 접두사 길이는 네트워크에 속하는 IP 주소의 범위를 결정합니다.

IPv4의 경우 접두사 길이는 0에서 32 사이의 숫자입니다. 따라서 표기법 192.168.2.0/24는 netmask가 255.255.255.0인 IP 주소 192.168.2.0을 나타냅니다. 이 netmask에는 24개의 선행 1비트 또는 24개의 접두사 길이가 있습니다.

IPv6의 경우 접두사 길이는 0에서 128 사이의 숫자입니다. 따라서 표기법 fe80::85d:e82c:9446:7994/120은 IP 주소 fe80::85d:e82c:9446:7994를 나타내며 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00의 netmask가 있습니다. 이 netmask에는 120개의 선행 1비트 또는 120의 접두사 길이가 있습니다.

반품

  • true: IPv4 주소가 지정된 IPv4 네트워크의 범위에 있는 경우
  • false:그렇지 않으면.
  • null: 두 IPv4 문자열 중 하나에 대한 변환에 성공하지 못한 경우

예제

문자열 목록을 사용하는 구문

print Result=ipv4_is_in_any_range('192.168.1.6', '192.168.1.1/24', '10.0.0.1/8', '127.1.0.1/16')

출력

결과
true

동적 배열을 사용하는 구문

print Result=ipv4_is_in_any_range("127.0.0.1", dynamic(["127.0.0.1", "192.168.1.1"]))

출력

결과
true

IPv4 범위 검사를 사용하여 테이블 확장

let LocalNetworks=dynamic([
    "192.168.1.1/16",
    "127.0.0.1/8",
    "10.0.0.1/8"
]);
let IPs=datatable(IP:string) [
    "10.1.2.3",
    "192.168.1.5",
    "123.1.11.21",
    "1.1.1.1"
];
IPs
| extend IsLocal=ipv4_is_in_any_range(IP, LocalNetworks)

출력

IP IsLocal
10.1.2.3 true
192.168.1.5 true
123.1.11.21 false
1.1.1.1 false