PostgreSQL中將IP地址轉換成整數保存的代碼,PostgreSQL自己並不帶相似的轉換函數,只能本身經過split_part之類的方法進行分割轉換,還在代碼並不複雜。函數
CREATE FUNCTION ip2int(text) RETURNS bigint AS $$ .net
SELECT split_part($1,'.',1)::bigint*16777216 + split_part($1,'.',2)::bigint*65536 + blog
split_part($1,'.',3)::bigint*256 + split_part($1,'.',4)::bigint; ip
$$ LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT;
get
第二步:用建立好的ip2int函數,查詢ip
string
select * from "IPSubnet" where "Status"='A' and ip2int("StartIp")< ip2int('220.181.64.129') and ip2int(host("EndIP")) > ip2int
it