Javascript 有没有办法在rtc ice候选者中将.local IP地址解除到IPv4的掩码?

Javascript 有没有办法在rtc ice候选者中将.local IP地址解除到IPv4的掩码?,javascript,webrtc,Javascript,Webrtc,我试图通过javascript从浏览器中获取客户端的私有ip。我正在使用rtc对等连接。chrome的问题是,在某些情况下,ip返回为某些十六进制字符串.local(例如7c392ca5-d635-45be-841c-99dbfe3a0bfd.local)。如果禁用chrome标志,它将返回firefox的私有IP和chrome:(chrome://flags/#enable-webrtc使用MDN隐藏本地IP)。我需要IPv4版本的IP,以便在我的应用程序中列出特定的客户端IP 据介绍,rtc

我试图通过javascript从浏览器中获取客户端的私有ip。我正在使用rtc对等连接。chrome的问题是,在某些情况下,ip返回为某些十六进制字符串.local(例如7c392ca5-d635-45be-841c-99dbfe3a0bfd.local)。如果禁用chrome标志,它将返回firefox的私有IP和chrome:(chrome://flags/#enable-webrtc使用MDN隐藏本地IP)。我需要IPv4版本的IP,以便在我的应用程序中列出特定的客户端IP

据介绍,rtc客户端引入了将本地IP屏蔽为上述mdns字符串,最后使用.local。如果可以将mdns字符串取消屏蔽到IPv4地址,我在上找不到任何内容

这是我正在尝试的代码:

window.RTCPeerConnection =
    window.RTCPeerConnection ||
    window.mozRTCPeerConnection ||
    window.webkitRTCPeerConnection; //compatibility for Firefox and chrome

  var pc = new RTCPeerConnection({ iceServers: [] }),
    noop = function() {};

  pc.createDataChannel(""); //create a bogus data channel

 // create offer and set local description
  pc.createOffer(pc.setLocalDescription.bind(pc), noop);     
  pc.onicecandidate = function(ice) {
    if (ice && ice.candidate && ice.candidate.candidate) {

      let myIp = ice.candidate.address;
      alert(myIp);
      pc.onicecandidate = noop;
    }
  };

我甚至不确定这种方式是否是获得IP地址的正确方式。到目前为止,我已经找到了这种rtc方式,并点击一些第三方API获取ip(返回我的公共ip,而不是私有ip)。我想知道是否有人能告诉我一种方法来获取客户端的私有IP。任何其他IP过滤方式也将受到欢迎。

WebRTC的设计目的不是为了获得用户IP。“解除伪装”的唯一方法是向用户请求摄像头权限。您的用例是什么?

我想允许一些特定的客户端进入我的应用程序。现在,我正在考虑通过保存公共IP的记录来识别各个客户端,我可以从我的.net后端和设备的私有IP获取这些IP,以区分该公共IP下的客户端(假设私有IP保持不变)