你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

parse_ipv6_mask()

将 IPv6/IPv4 字符串和网络掩码转换为规范的 IPv6 字符串表示形式。

语法

parse_ipv6_mask(ip,prefix)

详细了解语法约定

参数

名称 类型 必需 说明
ip string 要转换为规范 IPv6 表示形式的 IPv6/IPv4 网络地址。 该值可以包含使用 IP 前缀表示法的网络掩码。
prefix int 从 0 到 128 的整数,表示所考虑的最有效位的数目。

IP 前缀表示法

IP 前缀表示法(也称 CIDR 表示法)是表示 IP 地址及其关联网络掩码的简明方式。 格式为 <base IP>/<prefix length>,其中,前缀长度是网络掩码中前导 1 位的数目。 前缀长度决定了属于该网络的 IP 地址范围。

对于 IPv4,前缀长度是介于 0 和 32 之间的数字。 因此,表示法 192.168.2.0/24 表示 IP 地址 192.168.2.0,且网络掩码为 255.255.255.0。 此网络掩码具有 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:ff00。 此网络掩码具有 120 个前导 1 位,或者说前缀长度为 120。

返回

如果转换成功,则结果是表示规范 IPv6 网络地址的字符串。 如果转换失败,则结果为空字符串。

示例

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)

输出

ip_string 网络掩码 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:ffff
::192.168.255.255/24 128 0000:0000:0000:0000:0000:ffff:c0a8:ff00