天天看點

PostgreSQL ip位址 查詢

 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