0
这种情况是,我在IIS 7.5上安装了一个WordPress安装程序,它通过代理访问互联网,并且网站的某些部分将提出需要用户输入其代理凭证的客户端外部请求(图片,YouTube视频等)如果他们通过Intranet访问该网站。我如何确定客户端是通过Intranet还是Internet访问网站?
我想隐藏网站的某些元素,如果它是通过Intranet访问的,并且如果通过互联网访问它将具有完全功能。
我发现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