울라프

특정국가 차단하기

· 2023-02-02 (목) 12:49:21 · 5376 · 9

[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'] 를 살펴보는 방법을 추천합니다.
@라엘 이거 무언가 이상한가 봤더니 Accept application/json 안 달면 웹싸이트가 호출되네요. 거기다 상대방 IP 어디로 보내지..
이거 데이터를 캐쉬를 안 하면 서버가 뻗겠는데.
댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

2,788건
+
제목 글쓴이 날짜 조회
23-03-16 조회 3,891
23-03-16 조회 4,582
23-03-11 조회 4,769
23-03-09 조회 4,161
23-03-08 조회 4,573
23-03-07 조회 4,386
23-03-06 조회 5,015
23-03-05 조회 4,147
23-03-03 조회 5,866
23-03-02 조회 5,059
23-03-02 조회 4,008
23-03-01 조회 3,696
23-02-20 조회 4,054
23-02-16 조회 4,651
23-02-16 조회 3,991
23-02-11 조회 4,316
23-02-10 조회 4,811
23-02-08 조회 4,194
23-02-06 조회 4,557
23-02-05 조회 4,623
23-02-02 조회 5,888
23-02-02 조회 5,377
23-02-02 조회 3,689
23-02-02 조회 4,154
23-02-02 조회 4,485
23-02-01 조회 4,560
23-01-30 조회 4,261
23-01-27 조회 4,574
23-01-27 조회 5,721
23-01-25 조회 4,984