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

PostgreSQLip地址ip转整数ip转换

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

第一步:建立ip2int函数

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; 

第二步:用创建好的ip2int函数,查询ip

select * from "IPSubnet" where "Status"='A' and ip2int("StartIp")< ip2int('220.181.64.129') and ip2int(host("EndIP")) > ip2int