반응형
1개의 아이피만 차단 할때
<?php
// 차단할 IP 주소
$blocked_ip = '192.168.0.1';
// 사용자의 IP 주소 가져오기
$user_ip = $_SERVER['REMOTE_ADDR'];
// 사용자의 IP가 차단된 IP와 일치하는 경우
if ($user_ip === $blocked_ip) {
header('HTTP/1.1 403 Forbidden'); // HTTP 상태 코드 403 전송
echo '접근이 차단되었습니다. (Your access has been blocked)';
exit; // 스크립트 실행 중단
}
?>
여러개의 아이피를 차단 할 때
<?php
// 차단할 IP 리스트
$blocked_ips = [
'192.168.0.1', // 특정 IP
'203.0.113.45', // 특정 IP
'203.0.113.*' // 특정 대역 (와일드카드 사용)
];
// 사용자의 IP 주소 가져오기
$user_ip = $_SERVER['REMOTE_ADDR'];
// IP 주소 차단 여부 확인
$block = false;
foreach ($blocked_ips as $blocked_ip) {
// 와일드카드(*)가 포함된 경우
if (strpos($blocked_ip, '*') !== false) {
// 와일드카드를 정규식으로 변환
$pattern = str_replace('*', '.*', preg_quote($blocked_ip, '/'));
if (preg_match("/^$pattern$/", $user_ip)) {
$block = true;
break;
}
} elseif ($user_ip === $blocked_ip) {
$block = true;
break;
}
}
// 차단된 경우 메시지 출력 후 중단
if ($block) {
header('HTTP/1.1 403 Forbidden'); // HTTP 403 상태 코드 전송
echo '접근이 차단되었습니다. (Your access has been blocked)';
exit;
}
?>
반응형
'PHP' 카테고리의 다른 글
특정날짜 입력 시 요일 출력 (0) | 2024.11.25 |
---|---|
PHP 정규표현식 (0) | 2024.11.22 |
PHP 배열 함수 정리 (0) | 2024.11.21 |
유튜브 주소에서 유튜브 영상 아이디 가져오기 (1) | 2024.11.15 |
두 날짜 사이의 날짜들을 배열로 반환 하는 함수 (0) | 2024.11.14 |