본문 바로가기
homaki.tistory.com의 구글 광고
컴퓨터

[PHP] 클라우드플레어로 접속자 국가 코드 표시

by homaki 2016. 9. 20.
◆ 이 블로그의 모든 게시물은 여러 방법을 이용해 다른 곳으로 퍼가는 것은 절대 허용하지 않습니다.
◆ 단, 게시물 링크를 남기는 것만 허용합니다.
이 문장 바로 아래글 내용 끝에 바로 나오는 광고티스토리 자체광고로 이 블로그와 무관합니다.

클라우드플레어를 사용하면 geoip 모듈이나 db를 사용하지 않아도 접속자의 국가를 알 수 있다.

이것을 알아내려면 클라우드플레어 cdn(구름)을 활성화한 상태여야 한다.



위와 같이 dns 설정으로 들어가 Status에 보이는 것처럼 화살표가 구름을 가로지르는 아이콘으로 바꿔야 cdn이 활성화 된다.

구름을 활성화하지 않으면 평범한 dns 서버와 다를 바 없다.


클라우드플레어 접속 서버, 방식, 지역을 알고 싶으면 자신의 도메인 뒤에 /cdn-cgi/trace를 붙이면 된다.

 ▶ https://www.domain.com/cdn-cgi/trace



그러면 위 스샷과 같은 화면이 나온다.

맨 밑에 빨간 상자에 있는 'loc=KR' 이것이 접속자가 접속 중인 국가 코드다.


http 서버에 클라우드플레어 모듈이 없으면 설치를 해보자.

어... 그냥 geoip 모듈을 설치하면 되는 건가(...)

그래도 이것을 설치하지 않으면 모든 접속자의 ip가 클라우드플레어 ip로 표시되니까 그냥 설치하자(...)


CentOS 7, Apache 2.4

[root@localhost ~]# yum install libtool httpd-devel

[root@localhost ~]# wget https://www.cloudflare.com/static/misc/mod_cloudflare/mod_cloudflare.c

[root@localhost ~]# apxs -a -i -c mod_cloudflare.c

[root@localhost ~]# systemctl restart httpd


국가 코드를 출력하는 코드는 아주 간단하다.

<?php echo $_SERVER["HTTP_CF_IPCOUNTRY"]; ?>

생각해보니 별로 쓸모가 없는 것 같다(...)

댓글

homaki.tistory.com의 구글 광고