Php judges the ip blacklist program code. The ip blacklist is implemented by placing the IP address to be filtered in a txt file or database. Then, when we access the ip address, we can retrieve the IP address and then traverse and compare it. The school's ip blacklist implementation method is to put the IP address to be filtered in a txt file or database, and then retrieve our ip address when we access it and then traverse and compare it to achieve it.
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: |
|
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; } } } // If www. bKjia. c0m is in the ip blacklist, perform the following operations: 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 (); |
Bytes. School...