PostgreSQL中将IP地址转换成整数保存的代码

来源:互联网 发布:直饮水 知乎 编辑:程序博客网 时间:2024/05/16 08:12

PostgreSQL中将IP地址转换成整数保存的代码,PostgreSQL本身并不带类似的转换函数,只能自己通过split_part之类的方法进行分割转换,还在代码并不复杂。

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;  //该代码片段来自于: http://www.sharejs.com/codes/sql/8678

假设 www.sharejs.com 的ip地址为200.233.1.2,则将200.233.1.2转换成整数的结果如下:
SELECT ip2int('200.233.1.2');
>> 3370713346


原文转自:脚本分享网 http://www.sharejs.com/codes/sql/8678