Watch-IP'yi Python ile Kullanma
watch-ip-sdk (PyPI, v0.1.1), GET /v1/geo'yu Python'un standart kütüphanesindeki urllib üzerine kurulmuş, bağımlılıksız bir istemcide sarmalar. IP sorgulamayı kapsamaz — aşağıdaki toplu işlem kılavuzu bu endpoint'i bunun yerine doğrudan çağırır.
Kurulum
Python 3.9+ gerektirir. Üçüncü taraf bağımlılığı yoktur — paket, standart kütüphaneden urllib kullanır.
pip
pip install watch-ip-sdkHızlı başlangıç
GET /v1/geo, bir ziyaretçinin kendi tarayıcısından çağrılmak üzere tasarlanmıştır. Onu Python'dan çağırmak, bunun yerine kendi sunucunuzdan çağırmak anlamına gelir; bu yüzden istek, bir tarayıcının otomatik olarak gönderdiği Origin başlığını taşımaz — anahtarın izin verilen origin'lerinden birine ayarlanmış origin'i açıkça geçirin, yoksa API çağrıyı origin_not_allowed ile reddeder.
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"])Hata işleme ve zaman aşımları
Her başarısızlık, bir status ve kararlı bir code içeren bir WatchIPError yükseltir (raise). get_geo(), saniye cinsinden isteğe bağlı bir timeout alır (varsayılan 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 sorgulama ve toplu sorgulama: doğrudan HTTP kullanın
Bu SDK'nın GET /v1/lookup/{ip} veya POST /v1/lookup için bir metodu yoktur — her ikisi de bu paketin sarmaladığı yayınlanabilir anahtar yerine gizli bir anahtarla kimliği doğrulanan sunucudan sunucuya endpoint'lerdir. Bunları doğrudan urllib ile çağırın; Python toplu işlem kılavuzu bunun üzerine eksiksiz, gruplara ayrılmış bir örnek inşa eder.
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)İlgili sayfalar
- Python toplu işlem kılavuzuBir IP listesini 100'lük gruplar halinde zenginleştirin.
- GET /v1/lookup/:ip referansıRastgele IP sorgulama endpoint'i için tam alan referansı.
- POST /v1/lookup referansıToplu IP sorgulama endpoint'i için tam alan referansı.
- Kimlik DoğrulamaYayınlanabilir ve gizli anahtarlar, origin kilitleme ve hız sınırları.