Watch-IP mit Python verwenden
watch-ip-sdk (PyPI, v0.1.1) umschließt GET /v1/geo in einem abhängigkeitsfreien Client, der auf dem urllib-Modul der Python-Standardbibliothek aufbaut. Es deckt keine IP-Abfrage ab — der Batch-Leitfaden unten ruft diesen Endpoint stattdessen direkt auf.
Installation
Erfordert Python 3.9+. Keine Abhängigkeiten von Drittanbietern — das Paket verwendet urllib aus der Standardbibliothek.
pip
pip install watch-ip-sdkSchnellstart
GET /v1/geo ist dafür ausgelegt, aus dem eigenen Browser eines Besuchers aufgerufen zu werden. Es aus Python aufzurufen bedeutet, es stattdessen von Ihrem eigenen Server aus aufzurufen, sodass die Anfrage nicht den Origin-Header trägt, den ein Browser automatisch sendet — übergeben Sie origin explizit, gesetzt auf einen der erlaubten Origins des Schlüssels, sonst lehnt die API den Aufruf mit origin_not_allowed ab.
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"])Fehlerbehandlung und Timeouts
Jeder Fehlschlag löst eine WatchIPError mit einem status und einem stabilen code aus. get_geo() akzeptiert ein optionales Timeout in Sekunden (Standard 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-Abfrage und Batch-Abfrage: direktes HTTP verwenden
Dieses SDK hat keine Methode für GET /v1/lookup/{ip} oder POST /v1/lookup — beides Server-zu-Server-Endpoints, die mit einem geheimen statt mit dem veröffentlichbaren Schlüssel authentifiziert werden, den dieses Paket umschließt. Rufen Sie sie direkt mit urllib auf; der Python-Batch-Leitfaden baut darauf ein vollständiges, in Batches aufgeteiltes Beispiel auf.
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)Verwandte Seiten
- Python-Batch-LeitfadenEine Liste von IPs in Batches von 100 anreichern.
- GET /v1/lookup/:ip-ReferenzVollständige Feldreferenz für den Endpoint zur beliebigen IP-Abfrage.
- POST /v1/lookup-ReferenzVollständige Feldreferenz für den Endpoint zur Batch-IP-Abfrage.
- AuthentifizierungVeröffentlichbare vs. geheime Schlüssel, Origin-Bindung und Ratenbegrenzungen.