Php judges ip blacklist program code instances
This article mainly introduces php code examples for judging ip blacklist programs. For more information, see
And supports Class c ip addresses. For example:
Ip.txt
192.168
211.67.188
211.67.191.25
The Code is as follows:
The Code is as follows:
/*
* IP address blacklist and whitelist
* The ip address of the visitor address is in ip.txt and supports Class c ip addresses.
* By xhat
*/
$ Ip = $ _ SERVER ['remote _ ADDR '];
$ IpArray = preg_replace ("# rn? | N # "," ", file('ip.txt '));
Foreach ($ ipArray as $ ipTest ){
If (substr_count ($ ip, $ ipTest )! = "0 "){
Echo "OK"; // execute related commands
Die ();
}
}
?>
You can use the code above to cheat you. The code below will be upgraded.
The Code is as follows:
<? Php
Class block_ip {
Var $ Block_ip = array ("192.168.1.1", "210.10.2.1-20", "222.34.4 .*");
Function _ construct (){
}
Function _ destruct (){
}
Private function makePregIP ($ str ){
If (strstr ($ str ,"-")){
$ AIP = explode (".", $ str );
Foreach ($ aIP as $ k =>v v ){
If (! Strstr ($ v ,"-")){
$ Preg_limit. = makePregIP ($ v );
} Else {
$ AipNum = explode ("-", $ v );
For ($ I = $ aipNum [0]; $ I <= $ aipNum [1]; $ I ++ ){
$ Preg. = $ preg? "|". $ I: "[". $ I;
}
$ Preg_limit. = strrpos ($ preg_limit, ".", 1) = (strlen ($ preg_limit)-1 )? $ Preg. "]": ".". $ preg. "]";
}
}
} Else {
$ Preg_limit. = $ str .".";
}
Return $ preg_limit;
}
Private function getAllBlockIP (){
If ($ this-> Block_ip ){
Foreach ($ this-> Block_ip as $ k => $ v ){
$ Ipaddres = $ this-> makePregIP ($ v-> start_ip );
$ Ip = str_ireplace (".", ".", $ ipaddres );
$ Ip = str_replace ("*", "[0-9] {1, 3}", $ ip );
$ Ipaddres = "/". $ ip ."/";
$ Ip_list [] = $ ipaddres;
}
}
Return $ ip_list;
}
Public function checkIP (){
$ Iptable = $ this-> getAllBlockIP ();
$ IsJoined = true;
// Obtain the user ip Address
$ Ip = $ this-> get_client_ip ();
$ Ip = trim ($ Ip );
// Remove the IP segments in the blacklist
If ($ iptable ){
Foreach ($ iptable as $ value ){
If (preg_match ("{$ value}", $ Ip )){
$ IsJoined = false;
Break;
}
}
}
// Perform the following operations in the ip blacklist:
If (! $ IsJoined ){
Echo "IP Error ";
Exit;
}
}
Private function get_client_ip (){
If (getenv ("HTTP_CLIENT_IP") & strcasecmp (getenv ("HTTP_CLIENT_IP"), "unknown "))
$ Ip = getenv ("HTTP_CLIENT_IP ");
Else if (getenv ("HTTP_X_FORWARDED_FOR") & strcasecmp (getenv ("HTTP_X_FORWARDED_FOR"), "unknown "))
$ Ip = getenv ("HTTP_X_FORWARDED_FOR ");
Else if (getenv ("REMOTE_ADDR") & strcasecmp (getenv ("REMOTE_ADDR"), "unknown "))
$ Ip = getenv ("REMOTE_ADDR ");
Else if (isset ($ _ SERVER ['remote _ ADDR ']) & $ _ SERVER ['remote _ ADDR '] & strcasecmp ($ _ SERVER ['remote _ ADDR'], "unknown "))
$ Ip = $ _ SERVER ['remote _ ADDR '];
Else
$ Ip = "unknown ";
Return ($ ip );
}
}
?>
Reference clip:
The Code is as follows:
$ OBlock_ip = new block_ip ();
$ OBlock_ip-> checkIP ();