js获取本机ip地址

js怎么获取本机ip地址

阅读 23.9k
4 个回答

本机是无法获取的,我建议通过调网上公共接口获取,给你一个我用过的例子。

//引一下sohu这个 
//返回数据var returnCitySN = {"cip": "117.132.58.6", "cid": "370200", "cname": "山东省青岛市"};
<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>   
//就能在用到的地方直接取到变量 returnCitySN啦

可以利用WEBRTC获取内网IP。
截了主要的代码,

function getIPKey(infoObj) {
    var that = this;
    if (window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection) {
        var Rtc = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
        try {
            var nrtc = new Rtc({
                iceServers: []
            });
            nrtc.createDataChannel('', {
                reliable: !1
            });
        } catch (e) {
            infoObj['ip'] = '0.0.0.0';
            return infoObj;
        }

        var e = false;
        nrtc.onicecandidate = function(Rtc) {
            var reg = /([0-9]{1,3}(\.[0-9]{1,3}){3})/,
                infoArr = [];
            'complete' != Rtc.target.iceGatheringState || e || (e = !0,
                Rtc.target.localDescription.sdp.split('\n').forEach(function(a) {
                    if ((a = reg.exec(a)) && '127.0.0.1' != a[1] && '0.0.0.0' != a[1] && -1 === infoArr.indexOf(a[1])) {
                        infoArr.push(a[1]);
                    }
                }),
                (function() {
                    window.currentIp = 0 < infoArr.length ? infoArr.sort()[0] : '0.0.0.0';
                    infoObj.ip = window.currentIp;
                })());
        };

        nrtc.createOffer(function(a) {
            nrtc.setLocalDescription(a, that.F(), that.F());
        }, that.F());

        infoObj.ip = window.currentIp || '0.0.0.0';

        return infoObj;
    } else {
        infoObj['ip'] = '0.0.0.0';

        return infoObj;
    }
}

纯js获取不到的
虽然js可以监听本地的网络情况
但是js并没有本地的网络权限
所以获取不到ip这种需要非顶层应用的数据的
要想那到ip地址,只能通过一个远程请求那到本地的ip地址

你想多了。(而且,“本机IP”这种不准确的概念,也没什么意义。)

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