postgresql使用正则匹配IP地址

前端之家收集整理的这篇文章主要介绍了postgresql使用正则匹配IP地址前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

查询某表的数据时,对表中的ip进行正则匹配:

select '192.168.14.29' ~ '^((?:(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))(?:\\.)){3}(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d))))$'


数据库表中,ip不规范的数据过滤:

select * from tableName where ipaddress ~ '^((?:(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))(?:\\.)){3}(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d))))$'


postgresql中,使用函数,将ip地址转换成整数,以此来判断某个ip是否在某个ip段中:

CREATE FUNCTION ip2int(text) RETURNS bigint AS $$
SELECT split_part($1,'.',1)::bigint*16777216 + split_part($1,2)::bigint*65536 +
split_part($1,3)::bigint*256 + split_part($1,4)::bigint;
$$ LANGUAGE sql IMMUTABLE RETURNS NULL ON NULL INPUT;



SELECT ip2int('200.233.1.2');


select ip2int('192.168.3.78') > ip2int('192.168.1.0')

原文链接:https://www.f2er.com/postgresql/194494.html

猜你在找的Postgre SQL相关文章