获取Web URL地址以检测Web代理

时间:2013-06-25 13:53:25

标签: php proxy

我正在尝试阻止基于网站的代理。这些通常采用以下格式: 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);
?>

2 个答案:

答案 0 :(得分:1)

PHP在服务器上运行。它只能看到从中请求的URL。

hidemyass.com将从您的服务器请求正常的网址。没有办法告诉浏览器从hidemyass.com请求的URL。

您可以采取的方法包括:

  • 根据已知代理列表检查源IP
  • 使用客户端JavaScript阅读location.href

答案 1 :(得分:1)

你不能只使用PHP。你可以做的是用javascript检查window.location.href,如果不正确,发送ajax请求到服务器,这将阻止IP地址。