해외 IP 접속을 차단 하는 방법은 3가지 방법이 있다.
1) 서버단에서 방화벽 접속을 차단하는 방법
- 이것이 가장 깔끔하고 쉬운 방법이다.
2) 브라우저 별 언어가 한국어 인지 체크하는 방법
$_SERVER['HTTP_ACCEPT_LANGUAGE']
//ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7 크롬
//ko,en;q=0.9,en-US;q=0.8 엣지
브라우저별로 리턴값이 다르다. 그러므로 결과값이 ko 를 포함하는지 체크하여 처리해준다.
3) 후이즈 open API를 활용(무료)
- API를 활용 하는 경우는 유료 서비스가 아닌경우 많은 이용시 이용제한이 걸리기 때문에 모든 페이지에 기능을 부착하기보다는 특정 이용수가 적은 페이지에 이용하는 것이 안정적이다.
- IP 확인 기능 제공사가 보유 하지 않은 DB의 데이터는 조회가 안되니 참고해야 한다.
후이즈 에서 제공하는 IP 확인 서비스가 있다.
https://xn--c79as89aj0e29b77z.xn--3e0b707e/kor/openkey/keyCre.do
KISA 후이즈검색 whois.kisa.or.kr
한국인터넷진흥원 인터넷주소자원 검색(후이즈검색) 서비스 입니다.
xn--c79as89aj0e29b77z.xn--3e0b707e
KEY를 발급받고 curl api 통신으로 결과값을 받아서 한국이 아닌경우 분기처리를 해준다.
function kisa_ipcheck_api(){
$ip = $_SERVER["REMOTE_ADDR"];
$key = "===========KEY=========";
$dataFormat = "json";
$url ="http://whois.kisa.or.kr/openapi/ipascc.jsp?query=".$ip."&key=".$key."&answer=".$dataFormat."";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_NOSIGNAL, 1);
//curl_setopt($ch,CURLOPT_POST, 1); //Method를 POST로 지정.. 이 라인이 아예 없으면 GET
$data = curl_exec($ch);
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
curl_close($ch);
$decodeJsonData = json_decode($data, true);
return $decodeJsonData['whois']['countryCode'];
}
상단 소스 참고 링크
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=zij08209712&logNo=221548792195
'개발 > php' 카테고리의 다른 글
php excel 다운로드 업로드시 숫자 깨짐 처리, 숫자 문자로 (0) | 2022.06.13 |
---|---|
HTTP/1.1 403 Forbidden imagecreatefrompng (0) | 2022.06.08 |
php 세션시간 소스로 수정 (0) | 2022.02.11 |
og php 라이브러리 png 파일 jpg로 변경하기 (0) | 2021.12.15 |
because the name is already in use php (0) | 2021.10.26 |
댓글