js可以根据后端传递过来的ip地址判断出对应所在的省份地区吗?

js可以根据后端传递过来的ip地址判断出对应所在的省份地区吗?
有木有大神以前做个类似的。
有什么好的思路实现方式吗?麻烦提供一下 谢谢!!

阅读 11k
9 个回答

既然你非要前端的实现,那我就给一个,不过其实也是调用后端接口实现的

function get_ip(cb) {
    var script = document.createElement("script"),
        s  = document.getElementsByTagName("script")[0];
           
    script.src = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=jsonp";
    s.parentNode.insertBefore(script, s);
    
    var it = setInterval(function () {
        if (!!remote_ip_info) {
            cb(remote_ip_info);
            remote_ip_info = null;
            
            clearInterval(it);
            it = null;
        }
    }, 100);
}

get_ip(function (info) {
    alert('你的ip所在地为:' + info.country + info.province + info.city);
});

看效果
http://codepen.io/joyqi/pen/rxOqEq

这个最好还是后端实现吧。
前端的话可以考虑IP库,通过地址与IP库比对判断出省份。

童鞋,《Javascript高级程序设计》的jsonp那里有这个例子耶。

新浪ip库貌似可以,搜下吧

不建议前端来做这个,

有好几家ip库提供http的服务来做,但是都很慢,不稳定。

例如 阿里 -- http://ip.taobao.com/

新手上路,请多包涵

后端吧,有个geolite的ip库

这功能跟JS没有关系,甚至跟具体哪种语言没有关系。应该调用相关的API来实现。

为什么后端不加一个归属地字段。后端处理这个很容易,前端基本需要用公共ip接口或者自建接口了

已经解决了!谢谢大家

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题