본문 바로가기

프로그래밍

파이썬으로 IP 기반 위치 정보 조회하기

IP 주소는 단순한 숫자 조합처럼 보이지만, 그 안에는 생각보다 많은 정보가 담겨 있습니다. 특히 ipinfo.io 같은 서비스는 이 IP를 기반으로 국가, 도시, ISP 등 다양한 데이터를 제공합니다. 이번 글에서는 파이썬으로 이 API를 호출해 IP 위치 정보를 자동으로 가져오는 파이썬 코드를 만들어 보았습니다.

아래는 파이썬 코드입니다. 내장 라이브러리가 아닌 requests 라이브러리를 사용하므로 pip install requests로 미리 설치해야 합니다.

 

import requests

def get_router_geolocation():
    # 내 공인 IP 자동 감지
    ip = requests.get("https://ipinfo.io/ip").text.strip()

    # IP 기반 위치 정보 조회
    data = requests.get(f"https://ipinfo.io/{ip}/json").json()

    return {
        "ip": ip,
        "city": data.get("city"),
        "region": data.get("region"),
        "country": data.get("country"),
        "loc": data.get("loc"),  # 위도,경도 문자열 "37.123,127.456"
        "org": data.get("org"),
        "timezone": data.get("timezone")
    }

info = get_router_geolocation()

print(f"IP: {info['ip']}")
print(f"City: {info['city']}")
print(f"Region: {info['region']}")
print(f"Country: {info['country']}")
print(f"Location: {info['loc']}")
print(f"Org: {info['org']}")
print(f"Timezone: {info['timezone']}")

 

[그림 1]은 실행 결과입니다. 도시는 제가 사는 도시가 아닌 옆 도시가 나왔습니다. 공인 IP를 이용한 위치는 GPS처럼 정확하지는 않습니다.

 

[그림 1] 공인 IP를 위치 정보