网络地址函数
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)