用于处理 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.
返回值
- 二进制格式的 IPv6 地址。FixedString(16).
示例
查询:
结果:
另见
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 地址的
string
。IPv4。
示例
查询:
结果:
查询:
结果:
toIPv4OrDefault
与 toIPv4
相同,但如果 IPv4 地址格式无效,则返回 0.0.0.0
(0 IPv4) 或提供的默认 IPv4 地址。
语法
参数
返回值
- 转换为当前 IPv4 地址的
string
。String。
示例
查询:
结果:
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.0
。String。
示例
查询:
结果:
toIPv6
将字符串形式的 IPv6 地址转换为 IPv6 类型。如果 IPv6 地址格式无效,则返回空值。 类似于 IPv6StringToNum 函数,其将 IPv6 地址转换为二进制格式。
如果输入字符串包含有效的 IPv4 地址,则返回该 IPv4 地址的 IPv6 等效地址。
语法
参数
string
— IP 地址。String。
返回值
- IP 地址。IPv6。
示例
查询:
结果:
查询:
结果:
toIPv6OrDefault
与 toIPv6
相同,但如果 IPv6 地址格式无效,则返回 ::
(0 IPv6)或提供的默认 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
,否则返回0
。UInt8。
示例
查询:
结果:
isIPv6String
判断输入字符串是否为 IPv6 地址。如果 string
是 IPv4 地址则返回 0
。
语法
参数
string
— IP 地址。String。
返回值
- 如果
string
是 IPv6 地址,则返回1
,否则返回0
。UInt8。
示例
查询:
结果:
isIPAddressInRange
判断某个 IP 地址是否包含在用 CIDR 表示的网络中。如果判断为真则返回 1
,否则返回 0
。
语法
该函数接受以字符串表示的 IPv4 和 IPv6 地址(及网络)。如果地址的 IP 版本与 CIDR 不匹配则返回 0
。
参数
返回值
1
或0
。UInt8。
示例
查询:
结果:
查询:
结果:
查询:
结果: