/[LeafOK_CVS]/fenglin/lib/client_addr.inc.php
ViewVC logotype

Diff of /fenglin/lib/client_addr.inc.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.5 by sysadm, Sun Jun 27 00:39:39 2004 UTC Revision 1.12 by sysadm, Wed Apr 23 05:13:57 2025 UTC
# Line 1  Line 1 
1  <?  <?php
2  require_once "common.inc.php";          require_once "../lib/ip_mask.inc.php";
3    ?>
4  function Client_Address($addr=null,$x_addr=null)  <?php
5    function client_addr(int $mask_level = 0) : string
6  {  {
7          global $SYS_proxy_ip;          $ip = (isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : "");
   
         $proxy_ip = $SYS_proxy_ip;  
   
         if ($addr == null)  
                 $addr = $_SERVER["REMOTE_ADDR"];  
8    
9          if ($x_addr == null && isset($_SERVER["HTTP_X_CLIENT_ADDR"]))          return ip_mask($ip, $mask_level, "%");
                 $x_addr = $_SERVER["HTTP_X_CLIENT_ADDR"];  
   
         foreach($proxy_ip as $ip)  
         {  
                 if (ereg($ip,$addr))  
                 {  
                         if ($x_addr != null)  
                         {  
                                 $client_addr = explode(",",$x_addr);  
                                 for($i=count($client_addr)-1;$i>=0;$i--)  
                                 {  
                                         $proxy = false;  
                                         foreach($proxy_ip as $ip)  
                                         {  
                                                 if (ereg($ip,$client_addr[$i]))  
                                                         $proxy = true;  
                                         }  
                                         if (!$proxy)  
                                                 return trim($client_addr[$i]);  
                                 }  
                                 return trim($client_addr[0]);  
                         }  
                         else  
                         {  
                                 return $_SERVER["REMOTE_ADDR"];  
                         }  
                 }  
         }  
   
         return $_SERVER["REMOTE_ADDR"];  
10  }  }
   
11  ?>  ?>


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1