第一种方法:
数据库种保存的ip地址段,归属地的数据结构如下:
要求查询ip地址:66.249.79.3的归属地信息。
一,用函数方式。
函数原理就是将ip转换成数值,66*256^3+249*256^2+79*256^1+3*256^0 = …………
在数据库种执行以下函数:
create or replace function inet_aton(ip text) returns int8 as $$
declare
v int;
res int8 := 0;
i int := 3;
begin
foreach v in array string_to_array(ip, '.') loop
res := res+v*(256^i);
i := i-1;
end loop;
return res;
end;
$$ language plpgsql;
函数执行后,可以在数据库种增加2列,保存转换后的整数类型的IP开始 结束标识。
如何查询定位归属地?使用sql查询,
select * from dim_ip_area dia where inet_aton('