跳到主要内容
跳到主要内容

用于处理 IPv4 和 IPv6 地址的函数

IPv4NumToString

接收一个 UInt32 数字,将其解析为大端格式的 IPv4 地址。返回一个字符串,包含格式为 A.B.C.d 的对应 IPv4 地址(用十进制表示的数字用点分隔)。

别名: INET_NTOA

IPv4StringToNum

[IPv4NumToString](#IPv4NumToString) 的反向函数。如果 IPv4 地址格式无效,则抛出异常。

别名: INET_ATON

IPv4StringToNumOrDefault(s)

IPv4StringToNum 相同,但如果 IPv4 地址格式无效,则返回 0。

IPv4StringToNumOrNull(s)

IPv4StringToNum 相同,但如果 IPv4 地址格式无效,则返回 null。

IPv4NumToStringClassC(num)

类似于 IPv4NumToString,但使用 xxx 代替最后一个八位字节。

示例:

由于使用 'xxx' 是非常不寻常的,因此将来可能会更改。我们建议您不要依赖该片段的确切格式。

IPv6NumToString(x)

接受一个包含 IPv6 地址的 FixedString(16) 值,格式为二进制。返回一个字符串,包含该地址的文本格式。 IPv6 映射的 IPv4 地址以格式 ::ffff:111.222.33.44 输出。

别名: INET6_NTOA

示例:

IPv6StringToNum

[IPv6NumToString](#ipv6numtostringx) 的反向函数。如果 IPv6 地址格式无效,则抛出异常。

如果输入字符串包含有效的 IPv4 地址,则返回其 IPv6 等效地址。 HEX 可以是大写或小写。

别名: INET6_ATON

语法

参数

  • string — IP 地址。String.

返回值

示例

查询:

结果:

另见

IPv6StringToNumOrDefault(s)

IPv6StringToNum 相同,但如果 IPv6 地址格式无效,则返回 0。

IPv6StringToNumOrNull(s)

IPv6StringToNum 相同,但如果 IPv6 地址格式无效,则返回 null。

IPv4ToIPv6(x)

接收一个 UInt32 数字,将其解析为大端格式的 IPv4 地址 big endian。返回一个包含二进制格式的 IPv6 地址的 FixedString(16) 值。示例:

cutIPv6(x, bytesToCutForIPv6, bytesToCutForIPv4)

接收一个包含 IPv6 地址的 FixedString(16) 值,格式为二进制。返回一个字符串,包含指定字节数删除后的地址的文本格式。例如:

IPv4CIDRToRange(ipv4, Cidr),

接受一个 IPv4 地址和一个包含 CIDR 的 UInt8 值。返回一个包含低范围和高范围的两个 IPv4 的元组。

IPv6CIDRToRange(ipv6, Cidr),

接受一个 IPv6 地址和一个包含 CIDR 的 UInt8 值。返回一个包含低范围和高范围的两个 IPv6 的元组。

toIPv4

类似于 IPv4StringToNum,但接收一个字符串形式的 IPv4 地址,并返回 IPv4 类型的值。

语法

参数

  • string — IPv4 地址。String

返回值

  • 转换为当前 IPv4 地址的 stringIPv4

示例

查询:

结果:

查询:

结果:

toIPv4OrDefault

toIPv4 相同,但如果 IPv4 地址格式无效,则返回 0.0.0.0(0 IPv4) 或提供的默认 IPv4 地址。

语法

参数

  • value — IP 地址。String
  • default(可选)— 如果 string 格式无效,则返回的值。IPv4

返回值

  • 转换为当前 IPv4 地址的 stringString

示例

查询:

结果:

toIPv4OrNull

toIPv4 相同,但如果 IPv4 地址格式无效,则返回 null。

语法

参数

  • string — IP 地址。String

返回值

  • 转换为当前 IPv4 地址的 string,如果 string 格式无效,则返回 null。String

示例

查询:

结果:

toIPv4OrZero

toIPv4 相同,但如果 IPv4 地址格式无效,则返回 0.0.0.0

语法

参数

  • string — IP 地址。String

返回值

  • 转换为当前 IPv4 地址的 string,如果 string 格式无效,则返回 0.0.0.0String

示例

查询:

结果:

toIPv6

将字符串形式的 IPv6 地址转换为 IPv6 类型。如果 IPv6 地址格式无效,则返回空值。 类似于 IPv6StringToNum 函数,其将 IPv6 地址转换为二进制格式。

如果输入字符串包含有效的 IPv4 地址,则返回该 IPv4 地址的 IPv6 等效地址。

语法

参数

  • string — IP 地址。String

返回值

  • IP 地址。IPv6

示例

查询:

结果:

查询:

结果:

toIPv6OrDefault

toIPv6 相同,但如果 IPv6 地址格式无效,则返回 ::(0 IPv6)或提供的默认 IPv6 地址。

语法

参数

  • string — IP 地址。String
  • default(可选)— 如果 string 格式无效,则返回的值。IPv6

返回值

  • IPv6 地址 IPv6,否则返回 :: 或提供的可选默认值,如果 string 格式无效。

示例

查询:

结果:

toIPv6OrNull

toIPv6 相同,但如果 IPv6 地址格式无效,则返回 null。

语法

参数

  • string — IP 地址。String

返回值

  • IP 地址。IPv6,如果 string 格式无效,则返回 null。

示例

查询:

结果:

toIPv6OrZero

toIPv6 相同,但如果 IPv6 地址格式无效,则返回 ::

语法

参数

  • string — IP 地址。String

返回值

  • IP 地址。IPv6,如果 string 格式无效,则返回 ::

示例

查询:

结果:

IPv6StringToNumOrDefault(s)

toIPv6 相同,但如果 IPv6 地址格式无效,则返回 0。

IPv6StringToNumOrNull(s)

toIPv6 相同,但如果 IPv6 地址格式无效,则返回 null。

isIPv4String

判断输入字符串是否为 IPv4 地址。如果 string 是 IPv6 地址则返回 0

语法

参数

  • string — IP 地址。String

返回值

  • 如果 string 是 IPv4 地址,则返回 1,否则返回 0UInt8

示例

查询:

结果:

isIPv6String

判断输入字符串是否为 IPv6 地址。如果 string 是 IPv4 地址则返回 0

语法

参数

  • string — IP 地址。String

返回值

  • 如果 string 是 IPv6 地址,则返回 1,否则返回 0UInt8

示例

查询:

结果:

isIPAddressInRange

判断某个 IP 地址是否包含在用 CIDR 表示的网络中。如果判断为真则返回 1,否则返回 0

语法

该函数接受以字符串表示的 IPv4 和 IPv6 地址(及网络)。如果地址的 IP 版本与 CIDR 不匹配则返回 0

参数

  • address — IPv4 或 IPv6 地址。String
  • prefix — CIDR 中的 IPv4 或 IPv6 网络前缀。String

返回值

示例

查询:

结果:

查询:

结果:

查询:

结果: