• js获取本地ip


    function getYourIP(){
                var RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
                if (RTCPeerConnection) (function () {
                    var rtc = new RTCPeerConnection({iceServers:[]});
                    if (1 || window.mozRTCPeerConnection) {     
                        rtc.createDataChannel('', {reliable:false});
                    };
                    
                    rtc.onicecandidate = function (evt) {
                        if (evt.candidate) grepSDP("a="+evt.candidate.candidate);
                    };
                    rtc.createOffer(function (offerDesc) {
                        grepSDP(offerDesc.sdp);
                        rtc.setLocalDescription(offerDesc);
                    }, function (e) { console.warn("offer failed", e); });
                    
                    
                    var addrs = Object.create(null);
                    addrs["0.0.0.0"] = false;
                    function updateDisplay(newAddr) {
                        if (newAddr in addrs) return;
                        else addrs[newAddr] = true;
                        var displayAddrs = Object.keys(addrs).filter(function (k) { return addrs[k]; });
                        for(var i = 0; i < displayAddrs.length; i++){
                            if(displayAddrs[i].length > 16){
                                displayAddrs.splice(i, 1);
                                i--;
                            }
                        }
                        alert("ip" + displayAddrs[0])
                    }
                    
                    function grepSDP(sdp) {
                        var hosts = [];
                        sdp.split('
    ').forEach(function (line, index, arr) {
                        if (~line.indexOf("a=candidate")) {    
                                var parts = line.split(' '),       
                                    addr = parts[4],
                                    type = parts[7];
                                if (type === 'host') updateDisplay(addr);
                            } else if (~line.indexOf("c=")) {       
                                var parts = line.split(' '),
                                    addr = parts[2];
                                updateDisplay(addr);
                            }
                        });
                    }
                })();
            }

    对chrome来说,如果以上地址弹出的ip为undefined,请按以下步骤修改浏览器设置: 

    1.打开地址chrome://flags/

    2.搜索 #enable-webrtc-hide-local-ips-with-mdns 该配置 并将属性改为disabled

    3.修改成功后重启浏览器并刷新网页即可

  • 相关阅读:
    设置root密码
    切分和组合图片(一)
    android 游戏开发libgdx(一)
    用SharePoint.OpenDocuments打开的文档如何控制它的ActiveWindow.View.ShowXMLMarkup(转)
    sp_helptext 命令
    CMMI 配置管理 简介(转)
    文本框中只能输入字符的正则表达式.
    基于CMM和CMMI的配置管理(转)
    正则表达式详述(转)
    选中多个CheckBox赋给文本框.
  • 原文地址:https://www.cnblogs.com/sghy/p/11309589.html
Copyright © 2020-2023  润新知