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

处理 IPv4 和 IPv6 地址的函数

IPv4NumToString

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

别名: INET_NTOA

IPv4StringToNum

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 的反向函数。如果 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 和一个 UInt8 值,包含 CIDR。返回一个元组,包含两个 IPv4 地址,分别表示子网的下限和上限范围。

IPv6CIDRToRange(ipv6, Cidr)

接收一个 IPv6 和一个 UInt8 值,包含 CIDR。返回一个元组,包含两个 IPv6 地址,分别表示子网的下限和上限范围。

toIPv4

将字符串或 UInt32 格式的 IPv4 地址转换为 IPv4 类型。 类似于 IPv4StringToNumIPv4NumToString 函数,但支持字符串和无符号整数数据类型的输入参数。

语法

参数

返回值

  • IPv4 地址。 IPv4

示例

查询:

结果:

查询:

结果:

查询:

结果:

toIPv4OrDefault

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

语法

参数

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

返回值

  • string 转换为当前 IPv4 地址。 String

示例

查询:

结果:

toIPv4OrNull

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

语法

参数

  • string — IP 地址。 String

返回值

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

示例

查询:

结果:

toIPv4OrZero

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

语法

参数

  • string — IP 地址。 String

返回值

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

示例

查询:

结果:

toIPv6

将字符串或 UInt128 格式的 IPv6 地址转换为 IPv6 类型。对于字符串,如果 IPv6 地址格式无效,则返回空值。 类似于 IPv6StringToNumIPv6NumToString 函数,这些函数可以在二进制格式(即 FixedString(16))之间转换 IPv6 地址。

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

语法

参数

返回值

  • 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 地址。 StringIPv4IPv6Nullable(String)Nullable(IPv4)Nullable(IPv6)
  • prefix — 以 CIDR 表示的 IPv4 或 IPv6 网络前缀。 String

返回值

示例

查询:

结果:

查询:

结果:

查询:

结果: