Nuestra aplicación web se basa en acceder a la IP privada de la computadora en la que se ejecuta el navegador. (Las computadoras se ejecutan en una red privada sin acceso a Internet, por lo que no nos preocupa el riesgo de seguridad).
Anteriormente logramos esto al deshabilitar el indicador enable-webrtc-hide-local-ips-with-mdns (opción de menú 'Anonimizar direcciones IP locales expuestas por WebRTC') en Microsoft Edge. La misma bandera estaba disponible en Chrome.
Pero parece que esta opción se eliminó en una actualización reciente de Chromium, ya que ya no puedo encontrar la bandera ni en Chrome ni en Edge.
¿Hay alguna solución para esto en la que pueda lograr lo mismo, es decir, permitir que el navegador acceda a la IP privada?
Si está en la misma red que el cliente, puede obtener la dirección IP del cliente de mDNS, tal como lo hacen los navegadores. El procedimiento se explica en https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-mdns-ice-candidates-04
En resumen, cada vez que reciba un candidato con una connection-address que termine en .local , resuelva la dirección usando mDNS. Si está en la misma red que el cliente, obtendrá la dirección IP del cliente. Si no está en la misma red, esto no producirá ningún resultado, que es el resultado deseado por razones de privacidad.
Tenga en cuenta que este protocolo no es seguro: un atacante en la red local podría responder a todas las consultas de mDNS con su propia dirección, lo que hará que se conecte con el atacante. Por lo tanto, debe tener cuidado de autenticar al cliente una vez que haya obtenido su dirección.