본문 바로가기

개발&컴퓨터/API연동&기타

내 블로그 및 사이트에 접속한 사용자 공인 아이피 얻는 API 정보

반응형

내 블로그에 접속하는 사람의 컴퓨터IP는 어떻게 되는지 궁금한 적 있으신가요?

또는 누군가 내 사이트에 어뷰징을 하는 것 같은데, 도대체 어떤 아이피인지, 그 아이피를 신고 또는 차단 하고 싶은데 알 수 있는 방법은 없을까요?

 

본인이 직접 서버를 구축하고, 서버 프로그래밍까지 한다고 하면 접속자의 IP 로그를 남기고 추적할 수 있겠지만, 애드센스를 하는 대부분의 비개발자 분들은 사용자의 IP를 확인하기 위한 설정을 하는 것이 쉽지 않을 겁니다. 특히나 티스토리나 워드프레스 등을 사용하는 경우, 직접 그런 설정을 하는 것에 제한이 있기도 하고, 직접 플러그인 및 코드를 수정하는데에 있어서 어려움이 있을 수도 있구요..

 

반응형

 

구글 애널리틱스와 태그 매니져를 이용하여 IP를 기록할 때, 많이 사용하는 API중의 하나가 바로 ipify.org 사이트에서 제공하는 공인 아이피(Public IP) 주소를 얻는 API입니다.

 

 

내 사이트나 블로그에 방문하는 불특정 다수의 사용자의 IP주소를 얻어오는 API를 제공합니다.

 

ipify.org 사이트에 접속하면 아래와 같이 샘플 코드가 있습니다.

 

사이트가 복잡하지도 않고, 단순하게 아래 API를 알려주고 있습니다.

IPv4
$ curl 'https://api.ipify.org?format=json'
{"ip":"116.39.xx.xxx"}

IPv4(v6)
$ curl 'https://api64.ipify.org?format=json'
{"ip":"116.39.xx.xxx"}

 

위의 https:// 로 시작하는 사이트(API) 주소를 본인의 웹브라우저 주소에 복사붙여넣기 해보세요!

아마 IP 주소가 하나 찍힐텐데 그 주소가 바로 본인 컴퓨터에 할당된 공인 아이피 주소입니다. 즉 위의 API를 운영하고 있는 홈페이지나 블로그에 삽입하면(코드를 삽입할 수 있다면) 접속하는 사용자의 공인 IP를 알게 되는 것입니다. (그런데 API호출만으로는 확인된 IP 주소를 어디에 기록하거나 출력할 수 있는 코드를 작성할 수 없으니, 조금 아래에 있는 스크립트 형태로 작성된 예제를 참고하세요.

 

 

ipify 사이트 상단 주소에서 API usage 메뉴를 클릭하면 좀 더 다양한 API 사용법에 대해 소개하고 있습니다.

IPv4 주소 (xxx.xxx.xxx.xxx 이런 형태의 주소를 말합니다.) 를 가져오는 API 사용 예제가 있는데, 기능은 동일한데, IP 주소를 가져오는 포맷이 조금 다를 뿐입니다.

 

IPv4
API URL	Response Type	Sample Output (IPv4)
https://api.ipify.org	text	98.207.xxx.xxx
https://api.ipify.org?format=json	json	{"ip":"98.207.xxx.xxx"}
https://api.ipify.org?format=jsonp	jsonp	callback({"ip":"98.207.xxx.xxx"});
https://api.ipify.org?format=jsonp&callback=getip	jsonp	getip({"ip":"98.207.xxx.xxx"});

CORS 이슈가 있는 사이트에 적용하는 경우 문제를 해결하여 사용할 수 있는 jsonp 방식의 사용도 제공하고 있습니다.

 

아래처럼 스크립트 형태로 삽입하는 것도 가능합니다.

callback 파라메터에 함수(getIP)를 지정하여, IP를 받아오고, 이를 javascript 로 출력하고 있습니다.

<script type="application/javascript">
  function getIP(json) {
    document.write("My public IP address is: ", json.ip);
  }
</script>

<script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP"></script>

공식 홈페이지에 있는 예제에서는 IP를 그냥 HTML 문서에 출력하고 있는데, 이 IP 정보를 다른 곳에 기록하거나 DB에 저장할 수도 있겠지요? 예제를 보시면 JQuery 방식, C# 방식 뿐만 아니라 스위프트나 Objective-C 등에 적용하는 등의 다양한 방법을 소개하고 있습니다.

 

사실 이 기능을 많이 사용하는 곳 중의 하나는 구글 애널리틱스에 연동하여 티스토리 블로그나 워드프레스에 접속하는 사용자의 IP를 추적하는 용도일 것 같습니다. 광고 부정 클릭, 무효 클릭 등이 발생하여, 광고 송출등이 차단되거나 제한되었을 때, 소명자료로 애널리틱스에 기록된 부정 클릭으로 추정되는 IP 주소를 구글 측에 제공할 수 있습니다.

 

구글 애널리틱스와 구글 태그 매니져(gtm) 등에 적용하여 이 API를 사용하는 방법은 또 내용이 많고, 다른 사이트나 블로그에서도 많이 소개하고 있으니, 참고하시기 바랍니다. 

 

아니면 추후 기회가 되면 작성하도록 하겠습니다.

 

반응형