2016-05-21 5 views
1

У меня есть требование определить, обслуживается ли веб-страница в Интернете или интранете, т. Е. Предполагается, что URL-адрес https://accessibleanyway.com - это телефон, подключенный к WIFI работы или к чему-то еще как их домашний Wi-Fi или телефонная сеть?Обнаружение того, что браузер находится в интранете

Каким образом это можно сделать?

(1) Используйте WebRTC для получения локального IP-адреса. Не широко поддерживается

(2) Попробуйте открыть локальный веб-страницы с помощью JSONP/CORS/IFRAME

Проблема 2 в том, что веб-страница HTTPS и локальный ресурс, скорее всего, HTTP, который вы можете» т. е. в IE afaik. Если я создаю локальный ресурс https, то через собственный сертификат, который означает установку ЦС на телефоны (вы можете больше покупать сертификаты для интрасети?)

Любые предложения?

+0

Detect, где на сервере или клиентом? –

+0

Я предполагаю клиента, но сервер является возможностью – tony

+0

Получает ли сервер локальный IP-адрес? – tony

ответ

0

Проблема с (2) заключалась в том, что та же страница пыталась использовать http и https, и даже с iframe вы получаете проблемы.

Вместо этого вы можете начать с страницы загрузки http, используя iframe для доступа к локальному ресурсу, доступ к которому вы можете получить, только если вы находитесь в интрасети, jsonp будет работать нормально. После того, как это сработало или не удалось, перенаправляйте на стартовую страницу с помощью некоторого токена в строке запроса, чтобы указать, что вы находитесь в интрасети, или нет.

NB, при переходе с http на https, вероятно, будут проблемы с безопасностью, если вы находитесь на одном веб-сайте (изначально были обнаружены файлы cookie аутентификации), но я бы подумал, что все будет хорошо, если вы собираетесь на другой.

Очевидно, что вокруг токена будет определенная безопасность, так как иначе пользователь может просто генерировать свои собственные, но это другой вопрос, который зависит от индивидуальных настроек. Очевидно, что это должно быть вызвано вызовом сервера, иначе кто-то может просто прочитать код клиента.

NB Я думаю адрес подход IP никогда не будет работать, как у вас нет возможности узнать, какая компания интрасеть установка выглядит как до тех пор, пока туда, так что это не общий ответ

 Смежные вопросы

  • Нет связанных вопросов^_^