/[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.3 by sysadm, Sun Jun 20 19:49:02 2004 UTC Revision 1.9 by sysadm, Thu Jan 7 01:28:59 2010 UTC
# Line 1  Line 1 
1  <?  <?
2    require_once "common.inc.php";
3    
4  function Client_Address()  function Client_Address($addr=null,$x_addr=null)
5  {  {
6          $proxy_ip = array(          global $SYS_proxy_ip;
                 "^61.129.42.22[01]$",  
                 "^203.95.5.66$",  
                 "^10.85.31.[0-9]{1,3}$",  
                 "^192.168.176.57$"  
         );  
7    
8          foreach($proxy_ip as $ip)          $proxy_ip = $SYS_proxy_ip;
9    
10            if ($addr == null)
11                    $addr = $_SERVER["REMOTE_ADDR"];
12    
13            if ($x_addr == null && isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
14                    $x_addr = $_SERVER["HTTP_X_FORWARDED_FOR"];
15    
16            foreach($proxy_ip as $tmp => $ip)
17          {          {
18                  if (ereg($ip,$_SERVER["REMOTE_ADDR"]))                  if (preg_match("/".$ip."/",$addr))
19                  {                  {
20                          if (isset($_SERVER["HTTP_X_CLIENT_ADDR"]))                          if ($x_addr != null)
21                          {                          {
22                                  $client_addr = explode(",",$_SERVER["HTTP_X_CLIENT_ADDR"]);                                  $client_addr = explode(",",$x_addr);
23                                  for($i=count($_SERVER["HTTP_X_CLIENT_ADDR"])-1;$i>=0;$i--)                                  for($i=count($client_addr)-1;$i>=0;$i--)
24                                  {                                  {
25                                          $proxy = false;                                          $proxy = false;
26                                          foreach($proxy_ip as $ip)                                          foreach($proxy_ip as $tmp => $ip)
27                                          {                                          {
28                                                  if (ereg($ip,$_SERVER["REMOTE_ADDR"]))                                                  if (preg_match("/".$ip."/",$client_addr[$i]))
29                                                          $proxy = true;                                                          $proxy = true;
30                                          }                                          }
31                                          if (!$proxy)                                          if (!$proxy)


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

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