Ситуация такова, что у меня есть WordPress, установленный на IIS 7.5, который имеет доступ к Интернету через прокси-сервер, а некоторые части веб-сайта будут делать внешний запрос на стороне клиента (изображения, видео YouTube и т. д.), который требует, чтобы пользователи вводили свои учетные данные прокси-сервера, если они заходят на сайт через интранет.
Я хотел бы скрыть некоторые элементы сайта, если доступ к ним осуществляется через интранет, и сделать его полностью функциональным при доступе через Интернет.
Я нашел этот 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') ) )
);
}