Watch-IP

استخدام Watch-IP مع Python

تُغلِّف watch-ip-sdk (على PyPI، الإصدار v0.1.1) استدعاء GET /v1/geo ضمن عميل خالٍ من التبعيات مبني على urllib من المكتبة القياسية للغة Python. وهي لا تُغطي البحث عن عنوان IP — إذ يستدعي دليل الدفعات أدناه تلك النقطة مباشرة بدلاً من ذلك.

التثبيت

يتطلب Python 3.9 أو أحدث. بلا أي تبعيات خارجية — تستخدم الحزمة urllib من المكتبة القياسية.

pip

pip install watch-ip-sdk

البدء السريع

صُمِّمت GET /v1/geo لتُستدعى من متصفح الزائر نفسه. واستدعاؤها من Python يعني استدعاءها من خادمك الخاص بدلًا من ذلك، لذا لن يحمل الطلب ترويسة Origin التي يُرسلها المتصفح تلقائيًا — مرِّر origin صراحةً، مضبوطة على أحد النطاقات المسموح بها للمفتاح، وإلا رفضت الواجهة البرمجية الاستدعاء برمز 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"])

معالجة الأخطاء والمُهل الزمنية

كل فشل يُطلِق WatchIPError يحمل status ورمزًا ثابتًا. تقبل get_geo() معامل timeout اختياريًا بالثواني (القيمة الافتراضية 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 والبحث المجمّع: استخدم HTTP مباشرة

لا تحتوي هذه الحزمة (SDK) على دالة لـ GET /v1/lookup/{ip} أو POST /v1/lookup — وكلاهما نقطتا نهاية من خادم إلى خادم تُوثَّقان بمفتاح سري بدلًا من المفتاح القابل للنشر الذي تُغلِّفه هذه الحزمة. استدعِهما مباشرة باستخدام urllib؛ ويبني دليل الدفعات بلغة Python مثالاً كاملاً مُقسَّمًا إلى دفعات فوق هذا الأساس.

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)

صفحات ذات صلة