ipv6_compare()
두 IPv6 또는 IPv4 네트워크 주소 문자열을 비교합니다. 인수 접두사 및 선택적 prefix
인수에서 계산된 결합된 IP 접두사 마스크를 고려하면서 두 IPv6 문자열을 구문 분석하고 비교합니다.
참고
함수는 IPv6 및 IPv4 네트워크 주소를 모두 나타내는 인수를 수락하고 비교할 수 있습니다. 그러나 호출자가 인수가 IPv4 형식임을 알고 있는 경우 ipv4_is_compare() 함수를 사용합니다. 이 함수는 런타임 성능을 향상합니다.
Syntax
ipv6_compare(
Ip1,
ip2[ ,
접두사])
구문 규칙에 대해 자세히 알아보세요.
매개 변수
이름 | 형식 | 필수 | Description |
---|---|---|---|
ip1, ip2 | string |
✔️ | IPv6 또는 IPv4 주소를 나타내는 식입니다. IP 접두사 표기법을 사용하여 IPv6 및 IPv4 문자열을 마스킹할 수 있습니다. |
prefix | int |
고려되는 가장 중요한 비트 수를 나타내는 0에서 128까지의 정수입니다. |
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은 ffff:ff00의 netmask가 있는 IP 주소 fe80::85d:e82c:9446:7994를 나타냅니다. 이 netmask에는 120개의 선행 1비트 또는 접두사 길이 120이 있습니다.
반환
0
: 첫 번째 IPv6 문자열 인수의 긴 표현이 두 번째 IPv6 문자열 인수와 같으면 입니다.1
: 첫 번째 IPv6 문자열 인수의 긴 표현이 두 번째 IPv6 문자열 인수보다 큰 경우-1
: 첫 번째 IPv6 문자열 인수의 긴 표현이 두 번째 IPv6 문자열 인수보다 작은 경우null
: 두 IPv6 문자열 중 하나에 대한 변환에 성공하지 못한 경우
예: IPv6/IPv4 비교 같음 사례
IPv6/IPv4 문자열 내에 지정된 IP 접두사 표기법을 사용하여 IP 비교
datatable(ip1_string:string, ip2_string:string)
[
// IPv4 are compared as IPv6 addresses
'192.168.1.1', '192.168.1.1', // Equal IPs
'192.168.1.1/24', '192.168.1.255', // 24 bit IP4-prefix is used for comparison
'192.168.1.1', '192.168.1.255/24', // 24 bit IP4-prefix is used for comparison
'192.168.1.1/30', '192.168.1.255/24', // 24 bit IP4-prefix is used for comparison
// IPv6 cases
'fe80::85d:e82c:9446:7994', 'fe80::85d:e82c:9446:7994', // Equal IPs
'fe80::85d:e82c:9446:7994/120', 'fe80::85d:e82c:9446:7998', // 120 bit IP6-prefix is used for comparison
'fe80::85d:e82c:9446:7994', 'fe80::85d:e82c:9446:7998/120', // 120 bit IP6-prefix is used for comparison
'fe80::85d:e82c:9446:7994/120', 'fe80::85d:e82c:9446:7998/120', // 120 bit IP6-prefix is used for comparison
// Mixed case of IPv4 and IPv6
'192.168.1.1', '::ffff:c0a8:0101', // Equal IPs
'192.168.1.1/24', '::ffff:c0a8:01ff', // 24 bit IP-prefix is used for comparison
'::ffff:c0a8:0101', '192.168.1.255/24', // 24 bit IP-prefix is used for comparison
'::192.168.1.1/30', '192.168.1.255/24', // 24 bit IP-prefix is used for comparison
]
| extend result = ipv6_compare(ip1_string, ip2_string)
출력
ip1_string | ip2_string | result |
---|---|---|
192.168.1.1 | 192.168.1.1 | 0 |
192.168.1.1/24 | 192.168.1.255 | 0 |
192.168.1.1 | 192.168.1.255/24 | 0 |
192.168.1.1/30 | 192.168.1.255/24 | 0 |
fe80::85d:e82c:9446:7994 | fe80::85d:e82c:9446:7994 | 0 |
fe80::85d:e82c:9446:7994/120 | fe80::85d:e82c:9446:7998 | 0 |
fe80::85d:e82c:9446:7994 | fe80::85d:e82c:9446:7998/120 | 0 |
fe80::85d:e82c:9446:7994/120 | fe80::85d:e82c:9446:7998/120 | 0 |
192.168.1.1 | ::ffff:c0a8:0101 | 0 |
192.168.1.1/24 | ::ffff:c0a8:01ff | 0 |
::ffff:c0a8:0101 | 192.168.1.255/24 | 0 |
::192.168.1.1/30 | 192.168.1.255/24 | 0 |
IPv6/IPv4 문자열 내에 지정된 IP 접두사 표기법을 사용하여 IP를 함수의 ipv6_compare()
추가 인수로 비교
datatable(ip1_string:string, ip2_string:string, prefix:long)
[
// IPv4 are compared as IPv6 addresses
'192.168.1.1', '192.168.1.0', 31, // 31 bit IP4-prefix is used for comparison
'192.168.1.1/24', '192.168.1.255', 31, // 24 bit IP4-prefix is used for comparison
'192.168.1.1', '192.168.1.255', 24, // 24 bit IP4-prefix is used for comparison
// IPv6 cases
'fe80::85d:e82c:9446:7994', 'fe80::85d:e82c:9446:7995', 127, // 127 bit IP6-prefix is used for comparison
'fe80::85d:e82c:9446:7994/127', 'fe80::85d:e82c:9446:7998', 120, // 120 bit IP6-prefix is used for comparison
'fe80::85d:e82c:9446:7994/120', 'fe80::85d:e82c:9446:7998', 127, // 120 bit IP6-prefix is used for comparison
// Mixed case of IPv4 and IPv6
'192.168.1.1/24', '::ffff:c0a8:01ff', 127, // 127 bit IP6-prefix is used for comparison
'::ffff:c0a8:0101', '192.168.1.255', 120, // 120 bit IP6-prefix is used for comparison
'::192.168.1.1/30', '192.168.1.255/24', 127, // 120 bit IP6-prefix is used for comparison
]
| extend result = ipv6_compare(ip1_string, ip2_string, prefix)
출력
ip1_string | ip2_string | 접두사 | result |
---|---|---|---|
192.168.1.1 | 192.168.1.0 | 31 | 0 |
192.168.1.1/24 | 192.168.1.255 | 31 | 0 |
192.168.1.1 | 192.168.1.255 | 24 | 0 |
fe80::85d:e82c:9446:7994 | fe80::85d:e82c:9446:7995 | 127 | 0 |
fe80::85d:e82c:9446:7994/127 | fe80::85d:e82c:9446:7998 | 120 | 0 |
fe80::85d:e82c:9446:7994/120 | fe80::85d:e82c:9446:7998 | 127 | 0 |
192.168.1.1/24 | ::ffff:c0a8:01ff | 127 | 0 |
::ffff:c0a8:0101 | 192.168.1.255 | 120 | 0 |
::192.168.1.1/30 | 192.168.1.255/24 | 127 | 0 |
관련 콘텐츠
- IPv4/IPv6 함수 개요
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기