FILTER IP ADDRESSES WITH PHP
페이지 정보
작성자 서방님 댓글 0건 조회 272회 작성일 14-09-02 10:17본문
출처 : http://magp.ie/2011/09/01/filter-ip-addresses-with-php/
You may at some stage want to filter an online service based on IP address. In other words, you may want to block or grant access to a request based on their IP address. This can be handled in PHP by doing the following.
If you have the IP addresses, then it is trivial.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | //First check IP address is valid$request_ip = $_SERVER['REMOTE_ADDR'];if ( !preg_match( "/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/", $request_ip ) ) return false;$blacklist = array('111.222.12.11','222.111.21.22','221.112.11.12');//check that ip is not blacklistedif ( in_array( $request_ip, $blacklist ) ) return false; |
If you want to include a range of IP addresses, best to use a regular expression.
1 2 3 4 5 6 7 8 9 | $blacklist_ip_range = array( '/^122\.244\.(\d+)\.(\d+)/', //for IP address in the range 122.244.0.0 - 122.244.255.255 '/^123\.(\d+)\.(\d+)\.(\d+)/', //for IP address in the range 123.0.0.0 - 123.255.255.255);foreach( $blacklist_ip_range as $ip ) { if( preg_match( $ip, $request_ip ) ) return false; } |
If you have a better solution, then please let me know.
c
댓글목록
등록된 댓글이 없습니다.
