Watch-IP

Python에서 Watch-IP 사용하기

watch-ip-sdk(PyPI, v0.1.1)는 Python 표준 라이브러리인 urllib을 기반으로 만든 무의존성 클라이언트로 GET /v1/geo를 감쌉니다. IP 조회는 지원하지 않으며, 아래의 배치 가이드에서는 해당 엔드포인트를 직접 호출합니다.

설치

Python 3.9 이상이 필요합니다. 서드파티 의존성이 없으며, 표준 라이브러리의 urllib을 사용합니다.

pip

pip install watch-ip-sdk

빠른 시작

GET /v1/geo는 방문자 자신의 브라우저에서 호출하도록 설계되었습니다. Python에서 호출한다는 것은 대신 자체 서버에서 호출한다는 의미이므로, 브라우저가 자동으로 보내는 Origin 헤더가 요청에 포함되지 않습니다 — origin을 키의 허용된 오리진 중 하나로 명시적으로 전달하지 않으면, API가 origin_not_allowed로 호출을 거부합니다.

Python

from watch_ip import WatchIP

client = WatchIP("wip_pub_xxxxxxxx", origin="https://example.com")
geo = client.get_geo()

print(geo["country"], geo["city"], geo["timezone"])

오류 처리와 타임아웃

모든 실패는 status와 안정적인 code를 가진 WatchIPError를 발생시킵니다. get_geo()는 초 단위의 선택적 timeout 인자를 받습니다(기본값 10.0).

Python

from watch_ip import WatchIP, WatchIPError

client = WatchIP("wip_pub_xxxxxxxx", origin="https://example.com")

try:
    geo = client.get_geo(timeout=5.0)
except WatchIPError as err:
    print(err.code, err.status, err)

IP 조회와 배치 조회: HTTP 직접 사용하기

이 SDK에는 GET /v1/lookup/{ip}나 POST /v1/lookup에 대한 메서드가 없습니다 — 이 패키지가 감싸는 공개 가능 키가 아니라 시크릿 키로 인증하는 서버 간 엔드포인트이기 때문입니다. urllib으로 직접 호출하세요 — Python 배치 가이드에서 이를 바탕으로 완전한 청크 처리 예제를 구성합니다.

Python

import json
import urllib.request

request = urllib.request.Request(
    "https://api.watch-ip.com/v1/lookup",
    data=json.dumps({"ips": ["203.0.113.1", "2001:db8::1"]}).encode(),
    headers={
        "Authorization": "Bearer YOUR_SECRET_KEY",
        "Content-Type": "application/json",
    },
)
with urllib.request.urlopen(request) as response:
    result = json.load(response)

관련 페이지