加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql使用正则匹配IP地址

发布时间:2020-12-13 17:05:40 所属栏目:百科 来源:网络整理
导读:在查询某表的数据时,对表中的ip进行正则匹配: select '192.168.14.29' ~ '^((?:(?:25[0-5]|2[0-4]d|((1d{2})|([1-9]?d)))(?:.)){3}(?:25[0-5]|2[0-4]d|((1d{2})|([1-9]?d))))$' 将数据库表中,ip不规范的数据过滤: select * from tableName

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

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


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

select * from tableName where ipaddress ~ '^((?:(?:25[0-5]|2[0-4]d|((1d{2})|([1-9]?d)))(?:.)){3}(?:25[0-5]|2[0-4]d|((1d{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')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读