راقب استخدام مفتاحك قبل أن تبلغ الحد
متابعة ترويسات الحصة أولًا بأول تخبرك متى يقترب الحد، قبل وقت طويل من رفض أي طلب فعليًا.
يبدو عنوان مثل 203.0.113.42 وآخر مثل 2001:db8::1 مختلفين بوضوح، لكن بمجرد أن تُدفن العناوين في ملف سجل أو في عمود في قاعدة بيانات، فإن السكربت الذي يفترض صيغة واحدة سيسيء التعامل مع الأخرى بصمت.
تعيد نقطة النهاية /v1/ip الحقل version في كل استجابة، وقيمته إما 4 أو 6، إلى جانب بقية بيانات الموقع. ولا حاجة إلى تحليل نص العنوان بنفسك لمعرفة العائلة التي ينتمي إليها.
GET /v1/ip?ip=2001:db8::1{
"status": "ok",
"ip": "2001:db8::1",
"version": 6,
"found": true,
"country": "Canada",
"country_code": "CA",
"region": "Ontario",
"city": "Toronto",
"postcode": "M5H",
"lat": 43.6511,
"lon": -79.3808,
"timezone": "America/Toronto",
"asn": 4321,
"org": "Example ISP"
}تُحتسب الحصة المجانية لكل شبكة، وتُعرَّف تلك الشبكة بشكل مختلف لكل عائلة عناوين: فجميع عناوين IPv4 التي تشترك في النطاق /24 نفسه تتقاسم حصة واحدة، وجميع عناوين IPv6 التي تشترك في النطاق /48 نفسه تتقاسم حصة واحدة. وقد يبدو عميل واحد يستخدم IPv6 ولديه كتلة عناوين كبيرة مخصصة له كأنه عناوين كثيرة مختلفة في سجلاتك، بينما هو في الواقع ضمن حصة مشتركة واحدة، ومعرفة الإصدار تساعدك على تجميع إدخالات السجل وفق النوع الصحيح من حدود الشبكة بدلًا من التعامل مع كل نص عنوان مختلف على أنه غير مرتبط بغيره.
الزائر الذي لديه اتصال إنترنت منزلي يدعم عائلتي العناوين معًا قد يظهر في سجلاتك على شكل عنوانين يبدوان غير مرتبطين في زيارتين، أحدهما IPv4 والآخر IPv6، بحسب العنوان الذي تصادف أن استخدمه جهازه في ذلك اليوم. وإذا تعاملت مع ذلك بسذاجة، فسيبدو كأنهما زائران مختلفان. والتجميع حسب الإصدار إلى جانب معرّف ثابت مثل ملف تعريف ارتباط الجلسة، بدلًا من التجميع حسب العنوان الخام وحده، يمنع تضخيم أعداد الزوار أو تقسيم سجل عميل واحد على ملفين شخصيين.
حين تكتب أدوات التحليلات أو كشف إساءة الاستخدام الخاصة بك فوق السجلات الخام، افصل المعالجة بحسب الحقل version قبل أن تحاول حساب بادئة الشبكة، لأن قناع /24 لا معنى له إذا طُبق على عنوان IPv6، وقناع /48 لا معنى له إذا طُبق على عنوان IPv4. واحفظ الإصدار إلى جانب العنوان نفسه بدلًا من استنتاجه من جديد عبر تحليل النص في كل مرة تقرأ فيها السجل.
تطبيق تعبير نمطي واحد مكتوب لصيغة IPv4 المنقوطة على عمود يحتوي أيضًا على عناوين IPv6 مصدر صامت لصفوف سجل مفقودة أو مصنفة خطأً. اختبر أي شيفرة لتحليل العناوين على الصيغتين صراحةً، بما في ذلك صيغة النقطتين المزدوجتين المختصرة التي تستخدمها عناوين IPv6 عادة، بدلًا من افتراض أن نمطًا واحدًا يغطي العائلتين.
معرفة الإصدار بهذه الطريقة تكلف طلبًا واحدًا لكل عنوان يُتحقق منه، مثل أي استعلام IP آخر. وإذا كنت تراجع ملف سجل كبيرًا، فمرر العناوين على دفعات عبر طلب POST مجمّع بدلًا من طلب واحد لكل سطر، مع بقاء التكلفة نفسها لكل عنصر في عدد أقل بكثير من الاستدعاءات.
التعامل مع IPv4 وIPv6 على أنهما عائلتا عناوين منفصلتان فعلًا، لا مجرد نصوص بأطوال مختلفة، يجنبك فئة من الأخطاء لا تظهر إلا حين تصبح حركة IPv6 نسبة معتبرة من زوارك. ويغطي توثيق الاستعلام عن IPv6 نقطة النهاية بالكامل.