Определение локального IP-адреса(локальной сети) пользователя используя HTML5 и JavaScript
Внимание! В начале 2020 года такие браузеры как Firefox и другие популярные десктопные браузеры прикрыли баг в WebRTC, который использовался для определения локального IP адреса пользователя. В настоящее время баг по-прежнему можно использовать в мобильных браузерах на устройствах под управлением операционный системы Android. Так же для тех кто использует Windows XP совместно с последней доступной для этого браузера версией Firefox 52 - так же можно видеть что локальный IP адрес определяется.
Определить локальный IP адрес(адрес локальной сети или локального VPN/pppoe подключения к Интернет) можно используя скрипт из листинга ниже. Определение IP адреса осуществляется браузером а не сервером! Определение происходит за счёт использования HTML5 RTCPeerConnection вызываемого через JavaScript. На чистом JavaScript я способа не знаю. На момент написания этой статьи определить IP ардес можно было в браузерах Firefox, Chrome, Opera и не возможно в Edge и Safari.
Коротко о коде в листинге ниже. Состоит из короткого HTML в котором находится span элемент с Id localIp. В этот span в результате выполнения JavaScript будет подставлен локальный IP адрес, если удастся его определить, иначе информация о ошибке. Разместите код из листинга на Вашем сайте в виде HTML документа и просто откройте. Локальный IP адрес сообщенный скриптом при открытии от сайта может отличаться при от адреса полученного в результате открытия документа с локального компьютера.