search

Home  >  Q&A  >  body text

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

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

PHP中文网PHP中文网2896 days ago180

reply all(9)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 17:16:37

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

    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

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 17:16:37

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

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 17:16:37

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

    reply
    0
  • 怪我咯

    怪我咯2017-04-10 17:16:37

    不建议前端来做这个,

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

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

    reply
    0
  • PHPz

    PHPz2017-04-10 17:16:37

    后端吧,有个geolite的ip库

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 17:16:37

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

    reply
    0
  • 迷茫

    迷茫2017-04-10 17:16:37

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

    reply
    0
  • 黄舟

    黄舟2017-04-10 17:16:37

    已经解决了!谢谢大家

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 17:16:37

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

    reply
    0
  • Cancelreply