更新时间:2025-09-12 GMT+08:00
分享

网络地址函数

INET_ATON

INET_ATON(TEXT str)

描述:指定一个字符串形式的IPv4网络地址,函数返回以网络字节顺序表示的地址数值。如果入参不是有效地址,则返回NULL。

返回值类型:BIGINT UNSIGNED

示例:

m_db=# SELECT INET_ATON('127'),INET_ATON('127.1'),INET_ATON('127.0.1'),INET_ATON('127.0.0.1');
 INET_ATON('127') | INET_ATON('127.1') | INET_ATON('127.0.1') | INET_ATON('127.0.0.1') 
------------------+--------------------+----------------------+------------------------
              127 |         2130706433 |           2130706433 |             2130706433
(1 row)

INET_NTOA

INET_NTOA (INT expr)

描述:指定一个按网络字节顺序排列的数字IPv4网络地址,函数返回网络地址的字符串形式。如果入参不是有效地址,则返回NULL。

返回值类型:VARCHAR

示例:

m_db=# SELECT INET_NTOA(4294902271),INET_NTOA(4294967295),INET_NTOA(511);
 INET_NTOA(4294902271) | INET_NTOA(4294967295) | INET_NTOA(511) 
-----------------------+-----------------------+----------------
 255.255.1.255         | 255.255.255.255       | 0.0.1.255
(1 row)

INET6_ATON

INET6_ATON(TEXT str)

描述:指定字符串形式的IPv4网络地址,函数返回网络地址的二进制字符串形式。如果入参不是有效地址,则返回NULL。

返回值类型:VARBINARY

示例:

m_db=# SELECT HEX(INET6_ATON('1.2.3.4'));
 HEX(INET6_ATON('1.2.3.4')) 
----------------------------
 01020304
(1 row)

INET6_NTOA

INET6_NTOA(VARBINARY expr)

描述:指定二进制字符串形式的IPv4网络地址,函数返回以网络字节顺序表示的地址数值。当入参为有效地址,且为VARBINARY或BINARY类型时,函数返回有效结果,否则返回NULL。

返回值类型:VARCHAR

示例:

m_db=# SELECT INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7:8'));
 INET6_NTOA(INET6_ATON('1:2:3:4:5:6:7:8')) 
-------------------------------------------
 1:2:3:4:5:6:7:8
(1 row)

IS_IPV6

IS_IPV6(ANY expr)

描述:判断输入的字符串是否为合法的IPv6地址,合法返回1,不合法返回0,如果输入的字符串为NULL,则返回0。

返回值类型:INT

示例:

m_db=# SELECT IS_IPV6('1:2:3:4:5:6:7:8');
 is_ipv6 
---------
       1
(1 row)

m_db=# SELECT IS_IPV6('1');
 is_ipv6 
---------
       0
(1 row)

IS_IPV4

IS_IPV4(ANY expr)

描述:判断输入的字符串是否为合法的IPv4地址,合法返回1,不合法返回0,如果输入的字符串为NULL,则返回0。

返回值类型:INT

示例:

m_db=# SELECT IS_IPV4('1.2.3.4');
 is_ipv4 
---------
       1
(1 row)

m_db=# SELECT IS_IPV4('1');
 is_ipv4 
---------
       0
(1 row)

相关文档