Через WebRTC можно получить список всех локальных (находящихся за NAT) интерфейсов в системе.
Пример кода на JavaScript jsfiddle.net/GZurr
Работает только в браузерах поддерживающих WebRTC, на текущий момент это Firefox и Chrome.
Это можно использовать для получения более точного фингерпринта браузера или, например, разоблачения персонажей сидящих за VPN чтобы ВЫЧИСЛИТЬ ПО АЙПИ И НАБИТЬ Е**ЛЬНИК
Для удобства использования я изготовил js-сниффер, который можно вставить на страницу и удобно просматривать результат его работы: zhovner.com/jsdetector
Достаточно вставить на страницу код:
<script src="//zhovner.com/jsdetector.js?name=test"></script>
Где test нужно заменить на слово, по которому будет доступен результат работы сниффера zhovner.com/jsdetector/test
Из примечательного в скрипте определение адресов пользовательского резовлера.
Скрипт генерирует несколько рандомных поддоменов вида RANDOM.detect.zhovner.com и обращается к ним по HTTP.
Зона *.detect.zhovner.com делегирована wildcard-ом на NS-сервер которые логирует запросы резолверов, и при обращении к сайтам возвращает source адрес, с которого пришел резолвер.
Нужно иметь в виду, что SSL сертификат валидный только для корневого домена, но не для *.detect.zhovner.com, поэтому при встраивании скрипта на https-сайты, будет показано предупреждение о контенте загружаемом не по HTTPS.
Автор: zhovner