Home > Backend Development > PHP Tutorial > PHP restricts IP access and only allows specified IP access. Allow * wildcard to filter IP_PHP tutorial

PHP restricts IP access and only allows specified IP access. Allow * wildcard to filter IP_PHP tutorial

WBOY
Release: 2016-07-14 10:08:04
Original
1693 people have browsed it

[php]

01./**
02. * Check whether the accessed IP is a specified allowed IP
03. * Enter description here ...
04.*/
05.function check_ip(){
06. $ALLOWED_IP=array('192.168.2.*','127.0.0.1','192.168.2.49');
07. $IP=getIP();
08. $check_ip_arr= explode('.',$IP);//Split the IP to be detected into an array
09. #Restrict IP
10. if(!in_array($IP,$ALLOWED_IP)) {
11. foreach ($ALLOWED_IP as $val){
12. If(strpos($val,'*')!==false){//The * sign substitution symbol is found
13.                                                                                                                 14.                  $arr=explode('.', $val);
15. $ BL = TRUE; // Used to record whether there is a successful match in the cycle detection
16. for($i=0;$i<4;$i++){
17. If($arr[$i]!='*'){//If it is not equal to *, it will be checked. If it is a * symbol replacement, it will not be checked
18. If($arr[$i]!=$check_ip_arr[$i]){
19. $bl=false;
" 2. 22.                                                                                         23.              }//end for                                                       24.                  if($bl){//If it is true, it will return if there is a successful match
25. return;
26. die;
27.                                                                                                               28.                                                                                                             29. }//end foreach
30. header('HTTP/1.1 403 Forbidden');
31. echo "Access forbidden";
32. die;
33. }
34.}
/**
* Check whether the accessed IP is a specified allowed IP
* Enter description here ...
​*/
function check_ip(){
$ALLOWED_IP=array('192.168.2.*','127.0.0.1','192.168.2.49');
$IP=getIP();
$check_ip_arr= explode('.',$IP);//The IP to be detected is split into an array
#Restrict IP
if(!in_array($IP,$ALLOWED_IP)) {
foreach ($ALLOWED_IP as $val){
                                                                                                                                                                                                         if(strpos($val,'*')!==false){//found that there is an * substitution symbol
         $arr=array();//
          $arr=explode('.', $val);
​​​​ $bl=true;//Used to record whether there is a successful match in loop detection
for($i=0;$i<4;$i++){
If($arr[$i]!='*'){//If it is not equal to *, it will be checked. If it is a * symbol replacement, it will not be checked
If($arr[$i]!=$check_ip_arr[$i]){
                $bl=false;
BREAK; // Terminate the IP to continue checking the next IP
           }
         }
}//end for
              if($bl){//If it is true, if it finds a successful match, it will return
           return;
            die;
        }
}
}//end foreach
header('HTTP/1.1 403 Forbidden');
echo "Access forbidden";
die;
}
}[php]
01.
[php]
01.

/**<br>
02. * Obtain accessed IP<br>
03. * Enter description here ...<br>
04.*/ <br>
05.function getIP() { <br>
06. return isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_SERVER["HTTP_X_FORWARDED_FOR"] <br>
07. :(isset($_SERVER["HTTP_CLIENT_IP"])?$_SERVER["HTTP_CLIENT_IP"] <br>
08. :$_SERVER["REMOTE_ADDR"]); <br>
09.}


10.
 
11.

12. Just call check_ip(); where it needs to be detected; This function allows only the specified IP to access the file, and provides the wildcard character * in the IP to match multiple IPs www.2cto.com
[php]
/*** Get accessed IP * Enter description here ...*/ function getIP() { return isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_SERVER["HTTP_X_FORWARDED_FOR"] :(isset($_SERVER["HTTP_CLIENT_IP"])?$_SERVER["HTTP_CLIENT_IP "] :$_SERVER["REMOTE_ADDR"]); } /**
* Obtain accessed IP
* Enter description here ...
​*/
function getIP() {
return isset($_SERVER["HTTP_X_FORWARDED_FOR"])?$_SERVER["HTTP_X_FORWARDED_FOR"]
:(isset($_SERVER["HTTP_CLIENT_IP"])?$_SERVER["HTTP_CLIENT_IP"]
:$_SERVER["REMOTE_ADDR"]);
}


Just call check_ip(); where it needs to be detected; This function allows only the specified IP to access the file, and provides the * wildcard in the IP to match multiple IPs

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/477824.htmlTechArticle[php] 01./**02. * Check whether the accessed IP is a specified allowed IP 03. * Enter description here... 04.*/ 05.function check_ip(){ 06. $ALLOWED_IP =array(192.168.2.*,127.0.0.1,192.16...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template