美文网首页初见
使用js获取客户端本地ip,不需要额外引入别的文件

使用js获取客户端本地ip,不需要额外引入别的文件

作者: 哒哒DaDa | 来源:发表于2020-06-09 17:45 被阅读0次

    参考文档地址1

    参考文档地址2

    试验了一下,是可行的,获取本地IP地址

    html代码

     <h1>ip:{{ip}}</h1>
    

    js代码-VUE

      mounted() {
          this.getUserIP((ip) => {
            this.ip = ip;
          });
        },
      methods:{
          getUserIP(onNewIP) {
          let MyPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
          let pc = new MyPeerConnection({
              iceServers: []
            });
          let noop = () => {
            };
          let localIPs = {};
          let ipRegex = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g;
          let iterateIP = (ip) => {
            if (!localIPs[ip]) onNewIP(ip);
            localIPs[ip] = true;
          };
          pc.createDataChannel('');
          pc.createOffer().then((sdp) => {
            sdp.sdp.split('\n').forEach(function (line) {
              if (line.indexOf('candidate') < 0) return;
              line.match(ipRegex).forEach(iterateIP);
            });
            pc.setLocalDescription(sdp, noop, noop);
          }).catch((reason) => {
          });
          pc.onicecandidate = (ice) => {
            if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;
            ice.candidate.candidate.match(ipRegex).forEach(iterateIP);
          };
        }
      }
    

    页面展示


    image.png

    相关文章

      网友评论

        本文标题:使用js获取客户端本地ip,不需要额外引入别的文件

        本文链接:https://www.haomeiwen.com/subject/rpretktx.html