Watch-IP gebruiken met Python
watch-ip-sdk (PyPI, v0.1.1) wrapt GET /v1/geo in een client zonder afhankelijkheden, gebouwd op de urllib van Python's standaardbibliotheek. Het dekt geen IP-lookup — de batchhandleiding hieronder roept dat endpoint in plaats daarvan rechtstreeks aan.
Installeren
Vereist Python 3.9+. Geen afhankelijkheden van derden — het pakket gebruikt urllib uit de standaardbibliotheek.
pip
pip install watch-ip-sdkSnel starten
GET /v1/geo is ontworpen om vanuit de eigen browser van een bezoeker te worden aangeroepen. Het vanuit Python aanroepen betekent dat je het in plaats daarvan vanaf je eigen server aanroept, dus het verzoek bevat niet de Origin-header die een browser automatisch meestuurt — geef origin expliciet mee, ingesteld op één van de toegestane origins van de sleutel, anders wijst de API de aanroep af met 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"])Foutafhandeling en timeouts
Elke mislukking gooit een WatchIPError met een status en een stabiele code. get_geo() accepteert een optionele timeout in seconden (standaard 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-lookup en batch-lookup: gebruik directe HTTP
Deze SDK heeft geen methode voor GET /v1/lookup/{ip} of POST /v1/lookup — beide server-naar-server-endpoints die met een geheime sleutel worden geauthenticeerd in plaats van de publiceerbare sleutel waar dit pakket omheen is gebouwd. Roep ze rechtstreeks aan met urllib; de Python-batchhandleiding bouwt hier een volledig, in delen opgesplitst voorbeeld op voort.
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)Gerelateerde pagina's
- Python-batchhandleidingVerrijk een lijst met IP's in batches van 100.
- GET /v1/lookup/:ip-referentieVolledige veldreferentie voor het endpoint voor het opzoeken van een willekeurig IP.
- POST /v1/lookup-referentieVolledige veldreferentie voor het batch-IP-lookup-endpoint.
- AuthenticatiePubliceerbare versus geheime sleutels, origin-binding en rate limits.