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