分享 Grape 实现:手机、IP、地址 查询 GEO

mimosa · 2013年07月02日 · 最后由 mimosa 回复于 2013年07月05日 · 5260 次阅读

通过 Grape 实现的简易 手机、IP、地址 查询地址(GEO)


IP 地址

  • geoplugin.net 获取 IP 的 GEO;
  • translate.google.com 翻译成中文
{
city: "西安",
region: "陕西",
country: "中国",
latitude: 34.258301,
longitude: 108.928596
}

手机号

  • 通过 redis-server 查询号码段;
  • maps.googleapis.com 获取 GEO;

    {
    provide: "上海电信",
    mobile: "18016245161",
    location: "中国上海",
    city: "上海",
    region: "上海市",
    country: "中国",
    latitude: 31.230393,
    longitude: 121.473704
    }
    

    凯翔小区

  • maps.googleapis.com 获取 GEO;

{
location: "中国上海市徐汇区龙漕路凯翔小区 邮政编码: 200231",
street: "龙漕路",
district: "徐汇区",
city: "上海",
region: "上海市",
country: "中国",
latitude: 31.170198,
longitude: 121.439336
}

源码:https://github.com/mimosa/geocoder

网址应该这么写<xxx>https://github.com/mimosa/geocoder,不然没法直接点啊

真不错 我们是把 IP 地址存库 电话号码存库做的查询... 定时要更新数据 否则就不准了

不错的东东

不错,数据需要那个 csv 文件?

#4 楼 @hooopo 不需要,那个文件被导入到 redis-server 了~

#5 楼 @mimosa 挺好用,方便。简单根据地址查 geo 比百度方便多了哈,都不用去看文档了 。 一个小问题:geo 信息是原始的还是哪个标准?参见百度 lbs 的描述:

original_coord_type     用户上传的坐标的类型  uint32  是     1   必选;1:国测局加密;2:百度加密两个值;3:未加密的GPS坐标。

好像百度出来是国测加密的(法规要求),google 出来时未加密的(真的不清楚,所以是好像)。

所以不知道 google,baidu lbs,weixin(用户输入地址发到后台的也是经纬度)这三个经纬度数据分别什么标准,哪些可以通用。

#5 楼 @mimosa 偶直接用你这个地址解析了,什么时候这个服务停了记得提前知会下(或者改域名了之类)

#6 楼 @ruby_sky 之前不知道什么意思,现在已修复 header +了 application/json; charset=utf-8

需要 登录 后方可回复, 如果你还没有账号请 注册新账号