Watch-IP

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-sdk

Snel 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