IP2Location 이용하여 IP 위도, 경도, 국가, 주소 확인하기

 

IP2Location에서 제공하는 무료 데이터베이스를 이용하여 IP 위도, 경도, 국가, 주소등 지도 위치를 확인하는 방법에 대해 알아보겠습니다.


IP2Location 장점과 단점

 

일단 가장큰 장점은 무료이면서 데이터베이스를 이용하는 것이기 때문에 검색하는데 횟수 제한이 없다는 점입니다.

하지만 데이터베이스 전체 가지고 있어야해서 그만큼 용량을 확보해야한다는 단점이 있습니다.


데이터베이스 준비하기

 

https://lite.ip2location.com/ip2location-lite

 

IP2Location LITE Database

IP2Location LITE geolocation database provides geographical information of an IP address such as the country, city, region, latitude, longitude, and much more.

lite.ip2location.com

 

위 링크에 들어가서 원하는 데이터베이스를 선택하면 Format이 BIN과 CSV 두가지가 있는데 원하는 IP 형식의 BIN파일을 다운로드 합니다.

 


IP2Location 라이브러리 설치하기

pip install IP2Location

 

pip를 이용하여 라이브러리를 설치합니다.


IP2Location 라이브러리 사용하기

 

import IP2Location, os

ip2location_db = IP2Location.IP2Location(os.path.join("BIN파일 폴더경로", "BIN파일 이름"))
#ip2location_db = IP2Location.IP2Location(os.path.join("/home/user/db", "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE-ADDRESSTYPE-CATEGORY-DISTRICT-ASN-SAMPLE.BIN"))
data = ip2location_db.get_all("19.5.10.1")

print("Country Code          : " + data.country_short)
print("Country Name          : " + data.country_long)
print("Region Name           : " + data.region)
print("City Name             : " + data.city)
print("ISP Name              : " + data.isp)
print("Latitude              : " + data.latitude)
print("Longitude             : " + data.longitude)
print("Domain Name           : " + data.domain)
print("ZIP Code              : " + data.zipcode)
print("Time Zone             : " + data.timezone)
print("Net Speed             : " + data.netspeed)
print("Area Code             : " + data.idd_code)
print("IDD Code              : " + data.area_code)
print("Weather Station Code  : " + data.weather_code)
print("Weather Station Name  : " + data.weather_name)
print("MCC                   : " + data.mcc)
print("MNC                   : " + data.mnc)
print("Mobile Carrier        : " + data.mobile_brand)
print("Elevation             : " + data.elevation)
print("Usage Type            : " + data.usage_type)
print("Address Type          : " + data.address_type)
print("Category              : " + data.category)
print("District              : " + data.district)
print("ASN                   : " + data.asn)
print("AS                    : " + data.as_name)

 

위와 같이 다운로드한 BIN 파일을 메모리에 불러와 사용할 수 있습니다.


마무리

 

잘못된 점이 있거나 궁금한 점이 있다면 언제든지 문의해주시기 바랍니다!

728x90
반응형

+ Recent posts