Ситуация в том, что у меня есть установка WordPress на IIS 7.5, которая обращается к Интернету через прокси-сервер, а некоторые части веб-сайта будут делать внешний запрос на стороне клиента (изображения, видео YouTube и т. Д.), В которых пользователям необходимо будет ввести свои учетные данные прокси-сервера если они обращаются к сайту через интрасеть.Как определить, обращается ли клиент к веб-сайту через интранет или Интернет?
Я хотел бы скрыть определенные элементы сайта, если он доступен через интранет, и иметь его полностью работоспособным при доступе через Интернет.
Я нашел this SO answer, который немного помог (и да, я изменил его на LOCAL_ADDR
из-за IIS), но он не работает из-за прокси.
Интернет-запросы на сайт проходят через прокси-сервер, который находится в одной сети, поэтому он считает, что каждый запрос является запросом интрасети.
Итак, как я могу улучшить эту функцию для работы в моей ситуации, если я знаю прокси-IP?
function is_intranet() {
$serverIP = explode('.',$_SERVER['LOCAL_ADDR']);
$localIP = explode('.',$_SERVER['REMOTE_ADDR']);
return (
($serverIP[0] == $localIP[0]) &&
(in_array($serverIP[0],array('127','10','172','192')))
);
}
кажется, что было бы логичным решением, так как легче проверить на прокси быть там, чем проверить, если клиент находится в том же домене. – mhcodner