跳到主要内容

IPV4_STRING_TO_NUM_OR_DEFAULT

ipv4_string_to_num_or_default

描述

获取包含 IPv4 地址的字符串,格式为 A.B.C.D(点分隔的十进制数字)。返回一个 BIGINT 数字,表示相应的网络字节序 IPv4 地址。

语法

IPV4_STRING_TO_NUM_OR_DEFAULT(<ipv4_string>)

参数

  • <ipv4_string>:IPv4 的字符串地址(形如 A.B.C.D)

返回值

返回类型:BIGINT

返回值含义:

  • 返回对应 IPv4 地址的网络字节序整数表示
  • 非法 IPv4 字符串或 NULL 输入返回 0

使用说明

  • 该函数不会抛出异常,非法输入统一返回 0(对应 0.0.0.0
  • 输入字符串前后空白不被允许
  • 常用于容错转换场景,如清洗脏数据

举例

将 IPv4 文本 192.168.0.1 转为对应的网络字节序整数。

select ipv4_string_to_num_or_default('192.168.0.1');
+----------------------------------------------+
| ipv4_string_to_num_or_default('192.168.0.1') |
+----------------------------------------------+
| 3232235521 |
+----------------------------------------------+

IPv4 边界值(最小与最大)。

select
ipv4_string_to_num_or_default('0.0.0.0') as min_v4,
ipv4_string_to_num_or_default('255.255.255.255') as max_v4;
+--------+-----------+
| min_v4| max_v4 |
+--------+-----------+
| 0 | 4294967295|
+--------+-----------+

非法输入时返回 0(不抛异常)。

select ipv4_string_to_num_or_default('256.0.0.1');
+--------------------------------------------+
| ipv4_string_to_num_or_default('256.0.0.1') |
+--------------------------------------------+
| 0 |
+--------------------------------------------+

select ipv4_string_to_num_or_default(' 1.1.1.1 ');
+--------------------------------------------+
| ipv4_string_to_num_or_default(' 1.1.1.1 ') |
+--------------------------------------------+
| 0 |
+--------------------------------------------+

select ipv4_string_to_num_or_default(NULL);
+-------------------------------------+
| ipv4_string_to_num_or_default(NULL) |
+-------------------------------------+
| 0 |
+-------------------------------------+

Keywords

IPV4_STRING_TO_NUM_OR_DEFAULT