특정국가 차단하기
[code]
function blockNonUS($is_guest){
if ($is_guest) {
// 미국 아니면 모두 아이피 차단되게
$detail = json_decode(file_get_contents("http://ipinfo.io"));
if($detail->country !== "US") {
http_response_code(403);
exit();
}
}
}
blockNonUS($is_guest);
[/code]
** user.extend.php 안에다 넣는게 제일 좋아요.
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 9개
이거 잘 안되네요. 서버에서 딜레이가 있는지, 미국에서도 접속 불가되는 경우가 있네요.
어떻게 잘못되었는지 자세히...
1. PHP 는 ServerSide Code 이기 때문에, 위의 경우 무조건 서버의 IP 만 찍힙니다.
$detail-> ip 를 확인해보세요. 항상 서버의 IP 일겁니다.
2. 공개 무료 서비스는 언제든 중단될 수 있습니다.
특히 단일IP로 다량의 요청이 발생될 경우 차단될 수 있습니다.
--
서버에서 apt install php-geoip 하신다음에
$_SERVER['GEOIP_COUNTRY_CODE'] 를 살펴보는 방법을 추천합니다.
[http://sir.kr/data/editor/2302/2542fbd99880addcc431759e395d83a4_1675401480_082.png]
사용법
https://support.tigertech.net/mod-geoip