我正在尝试阻止基于网站的代理。这些通常采用以下格式: http://3.hidemyass.com/ip-8/encoded/Oi8vZ29kbGV5ZGVzaWduLmNvLnVrL0xDcmVkaXJlY3QvZnVuY3Rpb25zL2Z1bmN0aW9
我阻止这些的理论是获取地址栏的URL并检查它是否实际上直接访问我的网站,而不是通过网站代理访问。
然而,当我尝试访问我的网站并尝试捕获用户的网址时,它仍会报告其网站的网址是url ..而不是基于网络的代理网站。
我尝试了以下检测方法:
$url= $_SERVER['HTTP_HOST']; //get the url
$url = $_SERVER["SERVER_NAME"];
关于如何解决此问题的任何想法?
UPDATE 好吧,我已经重写了部分内容,但它似乎总是返回false ... $ url正在传递正确,因为我可以在函数内回应这个。但它似乎没有匹配并返回false
<script>
var url = window.location.href;
<?php $url = "<script>document.write(url)</script>"; ?>
</script>
<?php
//
function checkURLIsSafe($url){
if(preg_match('/www/',$url)){
echo 'true';
} else {
echo 'false';
}
}
checkURLIsSafe($url);
?>
答案 0 :(得分:1)
PHP在服务器上运行。它只能看到从中请求的URL。
hidemyass.com
将从您的服务器请求正常的网址。没有办法告诉浏览器从hidemyass.com
请求的URL。
您可以采取的方法包括:
location.href
答案 1 :(得分:1)
你不能只使用PHP。你可以做的是用javascript检查window.location.href,如果不正确,发送ajax请求到服务器,这将阻止IP地址。