필요에 따라 IP 정보를 조회해 볼일이 생긴다면 대부분 ipconfig.co.kr , geoiptool.com 과 같은 WEB 을 통해서 정보를 확인하곤하죠. 이러한 정보들은 대부분 Maxmind에서 제공하는 GeoIP 데이타를 가지고 구동됩니다.
여기서는 command line 에서 간단히 IP 정보를 확인하는 방법 2가지에 대해 소개합니다.
첫번째 : geoiplookup
Ubuntu
# apt-get install geoip-bin
CentOS/RHEL
# yum install geoip
# geoiplookup idchowto.com
GeoIP Country Edition: KR, Korea, Republic of
Maxmind 에서 배포하는 디비를 이용해서 좀더 디테일한 정보 확인해보도록 하겠습니다.
Maxmind 에서 배포하는 버전에는 무료/유로 버전이 있는데…굳이 유로버전 사용할 필요없이 한달에 한번 업데이트 해주는 무료버전만으로도 충분합니다. 단, 필히 한달에 한번은 업데이트(cron 등을 이용)를 진행해주셔야 합니다.
참고 http://dev.maxmind.com/geoip/legacy/geolite/
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
# wget http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
# gunzip GeoIP.dat.gz
# gunzip GeoIPASNum.dat.gz
# gunzip GeoLiteCity.dat.gz
# cp Geo* /usr/share/GeoIP/
사무실 아이피 확인
음…..KT 라인에… AS 번호는 4766…한국 아이피
# geoiplookup XXX.XXX.XXX.6
GeoIP Country Edition: KR, Korea, Republic of
GeoIP ASNum Edition: AS4766 Korea Telecom
이것만으로는 정보라고 하기에는 많이 부족하죠.
이번에는 GeoLiteCity 데이타를 이용해서 주, 도시, 우편번호, 위도, 경도까지 확인
# geoiplookup -f /usr/share/GeoIP/GeoLiteCity.dat XXX.XXX.XXX.6
GeoIP City Edition, Rev 1: KR, 13, Kyonggi-do, Seongnam, N/A, 37.438599, 127.137802, 0, 0
※ 모바일 네트워크는 정보가 상이할수 있다고 명시되어있음
두번째 : JSON 기반의 위치정보 API 이용
또다른 방법으로는…GeoIP 데이타를 이용하지 않고 ipinfo.io 에서 제공하는 서비스를 이용하는 방법입니다.
여기서는 curl 을 비롯해 jQuery, Node.js, Ruby, Python 등과 같은 도구를 이용해 JSON 기반의 위치정보 API를 제공합니다.
# curl ipinfo.io/XXX.XXX.XXX.6
{
“ip”: “XXX.XXX.XXX.6”,
“hostname”: “No Hostname”,
“city”: “Seongnam-si”,
“region”: “Gyeonggi-do”,
“country”: “KR”,
“loc”: “37.4386,127.1378”,
“org”: “AS4766 Korea Telecom”
WEB 버전
※ 하루에 API 호출 횟수는 1000회로 제한되어있으며 그 이상은 유료
유료가격은 아래 홈페이지에서 확인가능 http://ipinfo.io