РАЗРЫВ: RTCIceCandidate больше не возвращает IP - PullRequest
0 голосов
/ 25 июня 2019

Только что заметил, что в Chrome только , RTCIceCandidate больше не возвращает IP, а скорее запутанный адрес.

RTCIceCandidate 
address: "a5b3ef18-2e66-4e24-91d2-893b93bbc1c1.local"
candidate: "candidate:169888242 1 udp 2113937151 a5b3ef18-2e66-4e24-91d2-893b93bbc1c1.local 47871 typ host generation 0 ufrag 7dHv network-cost 999"
component: "rtp"
foundation: "169888242"
port: 47871
priority: 2113937151
protocol: "udp"
relatedAddress: null
relatedPort: null
sdpMLineIndex: 0
sdpMid: "0"
tcpType: ""
type: "host"
usernameFragment: "7dHv"

Обратите внимание, что первое свойство RTCIceCanadate - это "адрес", и "ip" больше не является частью этого объекта.

Следующий код определяет локальныйIP-адрес браузера. По-прежнему работает на MOZ .

function discover()
{
    try{
        //Get Local IP
        window.RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;   //compatibility for firefox and chrome

        if (pc)
            pc.close();

        pc = new RTCPeerConnection({iceServers:[]});   
        pc.onicecandidate = onIceCandidate;   
        pc.createDataChannel("");   
        pc.createOffer(pc.setLocalDescription.bind(pc), noop);   

    } catch (e)
    { console.log(e.message);}
}

function noop()
{
}

function onIceCandidate(ice)
{   
    console.log(ice.candidate);

    if(!ice || !ice.candidate || !ice.candidate.candidate)  return;

    var my_ip = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/.exec(ice.candidate.candidate)[1];

    this.onicecandidate = noop;

    ip = my_ip.split(".")[0]+'.'+my_ip.split(".")[1]+'.'+my_ip.split(".")[2];
}

Является ли WebRTC официально признанным стандартом?MOZ по-прежнему перечисляет «ip» как член RTCIceCandidate , не упоминая об элементе «address», который возвращает Chrome.

Есть ли способ де-обфускацировать "адрес" к "ip"?

1 Ответ

1 голос
/ 25 июня 2019

Поле ip было переименовано по адресу в спецификации W3C webrtc в какой-то момент, так как в наши дни поле может содержать либо IP-адрес, либо имя хоста mdns.То, что вы видите, является частью развертывания обфускации кандидатов на хост WebRTC, которое описано *ere , что происходит в Chrome 75. Вы не можете декодировать это имя хоста mdns в браузере.

Еслиу вас есть законный вариант использования, который вы могли бы попросить, чтобы он был рассмотрен в этой ветке списка рассылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...