Определяем внутренние ИП адреса сетевых интерфейсов с помощью WebRTC и JavaScript

archive view archive save

webrtc-logo_186x154 Хитрый Google относительно недавно (2012-2013) разработал спецификацию (протоколом назвать язык не поворачивается) WebRTC для своего браузера "Google Chrome", с помощью которой можно вычислить внутренние ИП всех сетевых интерфейсов.

Изначально WebRTC создан для голосовой и видеосвязи, а также претендует на альтернативу Skype. С помощью WebRTC, которая очевидно является дополнением к JavaScript движку, можно установить т.з. пиринговое соединение (peer connection, P2p), даже если клиент находится за кучей анонимных прокси-серверов и даже NAT или VPN. Пример этого чуда WebRTC в тандеме с HTML5 можно посмотреть здесь >>>

internet-nat-internal-network

Поддержка WebRTC в том или ином состоянии присутствует в таких браузерах, как Firefox 18-19+, Chrome 17-25+, Opera 16+, IE такой поддержки на сегодняшний день не имеет. Печаль заключается в том, что мы не можем отключить возможность пиринговых соединений (peer connection) в "Google Chrome" или "Comodo Dragon", даже если:

  • Запустим Chrome с флагами "--incognito --disable-logging --disable-java --allow-cross-origin-auth-prompt --allow-running-insecure-content --no-experiments --disable-device-motion --disable-device-enumeration --disable-device-discovery --disable-sctp-data-channels --disable-webrtc" - режим "incognito" тут явно ХРОМает;
  • На странице chrome://flags/ включим/выключим "Отключить нумерацию устройств средствами WebRTC." (chrome://flags/#disable-device-enumeration) и "Отключить передачу данных по протоколу SCTP" (chrome://flags/#disable-sctp-data-channels)

После того, как мы открыли страницу с примером, статистику по пиринговому соединению мы сможем найти в браузере по адресу chrome://webrtc-internals/

В Firefox мы может отключить "peerconnection", в настройках about:config нужно установить в значение false опцию media.peerconnection.enabled.

До сих пор я повседневно использую Firefox 3.6, Opera 11.хх ибо с каждой новой версией любого браузера растёт размер инсталлятора и вместе с ним растут требования к системным ресурсам, а у меня каждый мегабайт на вес золота!:) Например Opera 18-й версии после старта и запуска 2-х пустых вкладок съела более чем 150 МБ оперативки, а Opera 11-й версии почти на 20 активных вкладок с уже загруженными страницами отнимает от 100 до 130 МБ.


Об авторе
Иван Шаман
Меня нет ни в Инстаграмме ни в Фейсбуке, я просто хожу по улицам и рассказываю первым встречным: сколько зарабатываю; с кем дружу; где живу и чем дышу. У меня даже появилось несколько подписчиков: ПСИХоЛОХ и участковый полицай!
Ещё статьи автора
Комментарии в блоге
Новое на форуме