为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 PHP 检测代理

如何使用 PHP 检测代理

PHP
汪汪一只猫 2021-10-15 14:50:04
有时人们使用代理来掩盖他们的真实 IP 地址。我不要这个。我想限制该用户访问我的网站。我用 PHP 建立了一个网站。
查看完整描述

3 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

您可以使用“ HTTP HEADERS ”阻止代理


   function shapeSpace_block_proxy_visits() {


     $headers = array('CLIENT_IP','FORWARDED','FORWARDED_FOR','FORWARDED_FOR_IP','VIA','X_FORWARDED','X_FORWARDED_FOR','HTTP_CLIENT_IP','HTTP_FORWARDED','HTTP_FORWARDED_FOR','HTTP_FORWARDED_FOR_IP','HTTP_PROXY_CONNECTION','HTTP_VIA','HTTP_X_FORWARDED','HTTP_X_FORWARDED_FOR');


      foreach ($headers as $header){

         if (isset($_SERVER[$header])) {

             die('Proxy access not allowed.');

         }

      }

   }


查看完整回答
反对 回复 2021-10-15
?
POPMUISE

TA贡献1765条经验 获得超5个赞

2 方法可以实现它。这些技术适用于任何支持 PHP 的站点,包括 WordPress、Drupal、Joomla 等


1)通过端口扫描阻止代理访问


function blockproxyvisits() {


$ports = array(80,81,553,554,1080,3128,4480,6588,8000,8080);


foreach ($ports as $port) {

    if (@fsockopen($_SERVER['REMOTE_ADDR'], $port, $errno, $errstr, 5)) {

        die('Proxy access not allowed.');

    }

} }

2) 通过 HTTP 标头阻止代理访问


function blockproxy_visits() {


$headers = array('CLIENT_IP','FORWARDED','FORWARDED_FOR','FORWARDED_FOR_IP','VIA','X_FORWARDED','X_FORWARDED_FOR','HTTP_CLIENT_IP','HTTP_FORWARDED','HTTP_FORWARDED_FOR','HTTP_FORWARDED_FOR_IP','HTTP_PROXY_CONNECTION','HTTP_VIA','HTTP_X_FORWARDED','HTTP_X_FORWARDED_FOR');


foreach ($headers as $header){

    if (isset($_SERVER[$header])) {

        die('Proxy access not allowed.');

    }

} }

这里的缺点是扫描开放端口比简单地检查 HTTP 标头需要更多的时间


查看完整回答
反对 回复 2021-10-15
  • 3 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信