parse_ipv6_mask()

Konwertuje ciąg IPv6/IPv4 i maskę sieci na reprezentację ciągu kanonicznego IPv6.

Składnia

parse_ipv6_mask(Ip,Prefiks)

Dowiedz się więcej o konwencjach składniowych.

Parametry

Nazwa Typ Wymagane Opis
Ip string Adres sieciowy IPv6/IPv4 do konwersji na reprezentację kanoniczną IPv6. Wartość może zawierać maskę netto przy użyciu notacji prefiksu IP.
Prefiks int Liczba całkowita z zakresu od 0 do 128 reprezentująca liczbę najbardziej znaczących bitów, które są brane pod uwagę.

Notacja prefiksu IP

Notacja prefiksu IP (znana również jako notacja CIDR) to zwięzły sposób reprezentowania adresu IP i skojarzonej maski sieciowej. Format to <base IP>/<prefix length>, gdzie długość prefiksu jest liczbą wiodących 1 bitów maski sieci. Długość prefiksu określa zakres adresów IP należących do sieci.

W przypadku protokołu IPv4 długość prefiksu jest liczbą z zakresu od 0 do 32. Dlatego notacja 192.168.2.0/24 reprezentuje adres IP 192.168.2.0 maską netto 255.255.255.255.0. Ta maska sieci ma 24 wiodące 1 bity lub długość prefiksu 24.

W przypadku protokołu IPv6 długość prefiksu jest liczbą z zakresu od 0 do 128. Tak więc notacja fe80::85d:e82c:9446:7994/120 reprezentuje adres IP fe80::85d:e82c:9446:7994 z maską netmask ffff:ffff:ffff:ffff:ff00. Ta maska sieci ma 120 wiodących 1 bitów lub długość prefiksu 120.

Zwraca

Jeśli konwersja zakończy się pomyślnie, wynikiem jest ciąg reprezentujący kanoniczny adres sieciowy IPv6. Jeśli konwersja nie powiedzie się, wynik jest pustym ciągiem.

Przykład

datatable(ip_string: string, netmask: long)
[
    // IPv4 addresses
    '192.168.255.255', 120,  // 120-bit netmask is used
    '192.168.255.255/24', 124,  // 120-bit netmask is used, as IPv4 address doesn't use upper 8 bits
    '255.255.255.255', 128,  // 128-bit netmask is used
    // IPv6 addresses
    'fe80::85d:e82c:9446:7994', 128,     // 128-bit netmask is used
    'fe80::85d:e82c:9446:7994/120', 124, // 120-bit netmask is used
    // IPv6 with IPv4 notation
    '::192.168.255.255', 128,  // 128-bit netmask is used
    '::192.168.255.255/24', 128,  // 120-bit netmask is used, as IPv4 address doesn't use upper 8 bits
]
| extend ip6_canonical = parse_ipv6_mask(ip_string, netmask)

Dane wyjściowe

ip_string Netmask ip6_canonical
192.168.255.255 120 0000:0000:0000:0000:0000:ffff:c0a8:ff00
192.168.255.255/24 124 0000:0000:0000:0000:0000:ffff:c0a8:ff00
255.255.255.255 128 0000:0000:0000:0000:0000:ffff:ffff:ffff
fe80::85d:e82c:9446:7994 128 fe80:0000:0000:0000:085d:e82c:9446:7994
fe80::85d:e82c:9446:7994/120 124 fe80:0000:0000:0000:085d:e82c:9446:7900
::192.168.255.255 128 0000:0000:0000:0000:0000:ffff:c0a8:ffffff
::192.168.255.255/24 128 0000:0000:0000:0000:0000:ffff:c0a8:ff00