IP2Location 이용하여 IP 위도, 경도, 국가, 주소 확인하기
IP2Location에서 제공하는 무료 데이터베이스를 이용하여 IP 위도, 경도, 국가, 주소등 지도 위치를 확인하는 방법에 대해 알아보겠습니다.
IP2Location 장점과 단점
일단 가장큰 장점은 무료이면서 데이터베이스를 이용하는 것이기 때문에 검색하는데 횟수 제한이 없다는 점입니다.
하지만 데이터베이스 전체 가지고 있어야해서 그만큼 용량을 확보해야한다는 단점이 있습니다.
데이터베이스 준비하기
https://lite.ip2location.com/ip2location-lite
위 링크에 들어가서 원하는 데이터베이스를 선택하면 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
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 파이썬 에러 Fatal error in launcher: Unable to create process using "" (0) | 2024.03.14 |
---|