Ответ 1
Опустить список iceServers
:
const pc = new RTCPeerConnection();
Либо опустите список iceServers
из конструктора RTCPeerConnection
, либо сделайте его пустым списком []
.
Из документов RTCPeerConnection :
iceServers | опционально
Массив объектов
RTCIceServer
, каждый из которых описывает один сервер, который может использоваться агентом ICE; обычно это серверы STUN и/или TURN. Если это не указано, будет предпринята попытка подключения без доступа к серверу STUN или TURN, что ограничивает подключение к локальным узлам.
демонстрация webrtc/samples
Проект WebRTC имеет образец Trickle ICE, который вы можете использовать, чтобы увидеть, как изменения в iceServers
влияют на собранные адреса кандидатов. Конкретный пример, на который вы хотите посмотреть, -
.Запустите его с настройками по умолчанию, нажав кнопку "Собрать кандидатов" в нижней части страницы. Это вернет список адресов, которые включают в себя адрес публичной части вашего NAT.
Теперь удалите все серверы ICE из списка и снова нажмите "Собрать кандидатов", на этот раз вы должны видеть только адреса локальной сети.
Обратите внимание, что в моей сети 2 общедоступных IPv4-адреса (начиная с 98) появляются только при использовании серверов ICE по умолчанию. Когда я использую пустой список серверов ICE, мои общедоступные адреса IPv4 больше не обнаруживаются. С другой стороны, мои адреса IPv6 одинаковы в обоих тестах, потому что они не подчиняются NAT.
Вот ссылка на исходный код, который устанавливает iceServers и PeerConnection.