Javascript получить IP-адрес моей локальной сети
Я довольно успешно настроил pac-файлы, используя функцию myIpAddress() для определения локального IP-адреса в моей локальной сети для балансировки нагрузки моих прокси-серверов.
Теперь мне нужно использовать эту функцию или все, что работает просто, чтобы вернуть локальный IP-адрес, чтобы я мог изменить содержимое моего медиа-сервера, чтобы доставлять hq-видео на высокоскоростные ПК, обеспечивая при этом более низкое качество для региональных офисов, которые находятся на другая подсеть. Поиск оказался бесполезным.
В результате получается что-то, что позволяет веб-странице отображать http://mediaserver/x для одного диапазона IP- адресов и http://mediaserver/y для другого. Мне действительно все равно, какой у них WAN-адрес, это интранет.
Мой pac файл работает просто отлично.
Что мне нужно сделать, чтобы получить ту же функциональность в веб-скрипте, которая будет работать на машинах win32, OSX и Sun?
1 ответ
Не существует способа, чтобы машина локально могла определить свой собственный IP-адрес, видимый другим сервером. Например, у моего ноутбука Linux есть 3 разных действительных IP-адреса, и это не относится к NAT-адресам, которые могут быть временно назначены для внешнего трафика. Заставить Javascript локально выяснить, какой из них "правильный", - бесполезная задача.
Вам нужен сервер перенаправления (например, http://mediaserver/entrypoint-for-redirect), который определяет, с какого IP-адреса поступает запрос, а затем основывается на этом перенаправлении (HTTP-302) на нужный ресурс - это либо http://mediaserver/x, либо y.
РЕДАКТИРОВАТЬ
Поскольку вы используете apache, вы также можете реализовать это без перенаправления с помощью модуля mod-rewrite - т.е. установить mod-rewrite на сервере и создать правило, которое переключает трафик без перенаправления на нужный ресурс. сервер.