관리자 IP를 풀IP로 지정하는건 제대로 동작하나
203.* , 203.255.255.* 와 같이 대역으로 설정하면 관리자 IP대역을 맞게 설정하고
대역내에 들어가는 IP래도
현재는 소스코드가 잘못 작성되어 접근이 차단되는 버그가 있습니다.
오류해결 방법은(1.7.3.4기준)
./modules/member/member.admin.model.php 파일의
292라인의 getMemberAdminIPCheck() 함수를 아래로 바꿔주시면 됨.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | function getMemberAdminIPCheck() { $db_info = Context::getDBInfo(); $admin_ip_list = $db_info ->admin_ip_list; $admin_ip_list = explode ( "," , $admin_ip_list ); $oMemberModel = &getModel( 'member' ); $ip = $_SERVER [ 'REMOTE_ADDR' ]; $falg = false; foreach ( $admin_ip_list as $admin_ip_list_key => $admin_ip_value ) { if (preg_match( '/^\d{1,3}(?:.(\d{1,3}|\*)){3}\s*$/' , $admin_ip_value , $matches ) && $ip ) { $admin_ip = $matches [0]; /* 관리자 IP대역 오류수정전 원본 $admin_ip = str_replace('*','',$admin_ip); $admin_ip_patterns[] = preg_quote($admin_ip); $admin_ip_pattern = '/^('.implode($admin_ip_patterns,'|').')/'; */ $admin_ip_pattern = preg_quote( $admin_ip ); $admin_ip_pattern = "/^" . str_replace ( '\\*' , '\\d{1,3}' , $admin_ip_pattern ) . "/" ; if (preg_match( $admin_ip_pattern , $ip , $matches )) return true; $flag = true; } } if (! $flag ) return true; return false; } |