PostgreSQL中將IP地址轉換成整數保存的代碼
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;
第二步:用創建好的ip2int函數,查詢ip
select
* from "IPSubnet" where "Status"='A' and ip2int("StartIp")<
ip2int('220.181.64.129') and ip2int(host("EndIP")) > ip2int