온갖 해외 ip로 서버 해킹을 하려 하고
온갖 사진들을 추출하고 트레픽이 이만 저만이 아니다.
어느정도 서버 관리 능력이 있으면 GEOIP를 사용하고
초보자들은 사용하기에 너무 복잡하니 아래와 같은 방법으로 진행한다.
.htaccess 나 vhost 쪽에 설정해도 되나 귀찮으니
1. 서버 접속시 php 부터 호출하도록
$ php --ini // php.ini파일 확인 후 아래 항목 추가한다.
auto_prepend_file = "/home/chkip/config.php"
2. config.php 작성
헤더쪽 오류가 있을 경우 ob_start() ob_end_flush() 주석처리한다.
<?php
//ob_start();
//session_start();
$userIp = $_SERVER['REMOTE_ADDR'];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://get.geojs.io/v1/ip/country/" . $userIp);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
$response = curl_exec($curl);
if ($response === false) {
curl_close($curl);
die('Error in connecting to GeoJS API: ' . curl_error($curl));
}
curl_close($curl);
// 받은 응답을 JSON 객체로 변환합니다.
$responseData = json_decode($response, true);
// 국가 코드를 추출합니다.
$countryCode = $responseData['country'];
if ($countryCode !== 'KR')
{
header('HTTP/1.1 403 Forbidden');
echo 'bye';
exit;
}
//ob_end_flush();
?>
서버 관리는 항상 조심조심