Menggunakan Watch-IP dengan Python
watch-ip-sdk (PyPI, v0.1.1) membungkus GET /v1/geo dalam klien tanpa dependensi yang dibangun di atas urllib standard library Python. SDK ini tidak mencakup pencarian IP — panduan batch di bawah ini justru memanggil endpoint tersebut secara langsung.
Instalasi
Membutuhkan Python 3.9+. Tanpa dependensi pihak ketiga — paket ini menggunakan urllib dari standard library.
pip
pip install watch-ip-sdkMulai cepat
GET /v1/geo dirancang untuk dipanggil dari browser pengunjung sendiri. Memanggilnya dari Python berarti memanggilnya dari server Anda sendiri, sehingga request tidak akan membawa header Origin yang otomatis dikirim browser — kirim origin secara eksplisit, diset ke salah satu allowed origins key tersebut, atau API menolak panggilan dengan 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"])Penanganan error dan timeout
Setiap kegagalan melempar WatchIPError dengan sebuah status dan kode yang stabil. get_geo() menerima timeout opsional dalam detik (default 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)Pencarian IP dan pencarian IP massal: gunakan HTTP langsung
SDK ini tidak punya method untuk GET /v1/lookup/{ip} atau POST /v1/lookup — keduanya endpoint server-ke-server yang diautentikasi dengan secret key, bukan publishable key yang dibungkus paket ini. Panggil langsung dengan urllib; panduan batch Python membangun contoh chunked yang lengkap di atas dasar ini.
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)Halaman terkait
- Panduan batch PythonPerkaya daftar IP dalam batch berisi 100.
- Referensi GET /v1/lookup/:ipReferensi field lengkap untuk endpoint pencarian IP sembarang.
- Referensi POST /v1/lookupReferensi field lengkap untuk endpoint pencarian IP batch.
- AutentikasiPublishable key vs. secret key, penguncian origin, dan rate limit.