عن المشروع

تحديد المشروع: هذه مجموعة أدوات للمسح المستمر وإدارة "عناوين IP المختارة" التي تعمل حول مجموعة عناوين IP الرسمية لـ Cloudflare. محرك المسح الأساسي هو أداة سطر الأوامر cf_db.py، بينما تقوم لوحة إدارة الويب cf_web.py باستدعاء هذا المحرك، وكلاهما مُنفذ باستخدام مكتبات Python 3.8+ القياسية دون الاعتماد على حزم خارجية. مبدأ المسح ومراقبة الجودة: يتم إجراء اتصال متزامن لعدة منافذ مع تأكيد ثانوي عبر مصافحة TLS لتصفية عناوين IP الطرفية المتاحة لـ CF. تعتمد عملية أخذ العينات استراتيجية "ترجيح الجوار"، حيث يتم إعطاء الأولوية لعينات من نطاقات C التي تحتوي على عناوين IP عالية الجودة، ويمكن تعديل نسبة الميل عبر --exploit. يتم حفظ النتائج في SQLite، مما يسمح بالخروج والعودة للمسح من نقطة التوقف؛ ويتم التحكم في حجم المكتبة عبر حدود عليا وآلية "شواهد القبور" (Tombstone) لمنع إعادة اختبار عناوين IP الميتة لفترة زمنية. لوحة إدارة الويب: عند التشغيل، يتم تفعيل التحكم في الوصول افتراضياً، ويتم إنشاء اسم مستخدم وكلمة مرور عشوائية في cf_secret.json (صلاحيات 600)، وتعمل جميع الصفحات وواجهات API عبر Basic Auth. إذا كان openssl متاحاً في النظام، يتم تفعيل HTTPS بشهادة موقعة ذاتياً. يوضح ملف README أن الشهادة الموقعة ذاتياً تشفر النقل فقط وتمنع التجسس في الشبكة المحلية ولا توفر توثيقاً للهوية، لذا يجب ضمان كلمة مرور قوية عند الفتح للشبكة الخارجية. الواجهة عبارة عن تنقل قابل للطي على اليسار (يتحول إلى درج في الهاتف)، وتتكون من خمس رؤى: - لوحة نظرة عامة: بطاقات إحصائية (عناوين IP المختبرة هي تراكم تاريخي) ومخططات توزيع لخمس فئات: مراكز البيانات، الدول، التأخير، النطاق الترددي، والمسارات. - التحكم في المسح: مصادر العناوين (الشبكة العالمية الرسمية، CF الرسمية، ونطاقات مختارة لـ Telecom, Unicom, Mobile)، المنافذ، عدد العينات لكل جولة، التزامن، ميزانية التحقق، عدد اختبارات النطاق الترددي لكل جولة، تزامن قياس السرعة، نطاق قياس السرعة، إكمال المنطقة، المراجعة، ميزانية فحص المسار ودورة إعادة الاختبار، نسبة نطاقات C عالية الجودة، أقصى تأخير، والحد الأعلى للمكتبة، بالإضافة إلى مفاتيح لتأكيد TLS الثانوي، تصنيف المسارات، ومسح IPv6 بالتزامن؛ يتم تفعيل المعلمات فور حفظها، ويمكن بدء أو إيقاف المسح في أي وقت. - قائمة IP: تصفية حسب مركز البيانات (مفصول بفاصلة)، الحد الأدنى للنطاق الترددي، أقصى تأخير، تضمين IP، المنفذ، النطاق الترددي فقط، أو IPv6 فقط؛ ترتيب عبر النقر على رؤوس الأعمدة؛ إمكانية نسخ العناوين المختارة بتنسيق ip:port#region، أو تصديرها كملف txt أو مسحها، مع الحفاظ على الاختيارات عبر الصفحات؛ دعم التنقل وتصدير ADD.txt / CSV بناءً على التصفية الحالية. - تأثيرات النقر: مفاتيح تحكم ومنزلقات لمعلمات تأثيرات النقر وأثر المؤشر بأسلوب Blue Archive، يتم تطبيق التعديلات فورياً وحفظها محلياً في المتصفح، وتعمل على أجهزة المكتب واللمس. - خلفية الشاشة: يقوم الخادم بتحليل وتخزين صورة اليوم من NASA APOD، وفي حال كان محتوى اليوم فيديو يتم الرجوع لأحدث صورة، وفي حال فشل الواجهة يتم استخدام الصورة القديمة؛ يمكن إضافة NASA API Key في cf_settings.json لزيادة الحصة. الاختيار اليدوي: لا حاجة لانتظار المسح الخلفي؛ يتم تحديد العدد N، أولوية النطاق الترددي أو التأخير، تصفية المنطقة، النطاق الترددي فقط، أو IPv6 فقط، ثم يتم سحب max(N×5, 20) مرشحاً (بحد أقصى 150) من المكتبة المحلية، ثم إعادة اختبار الاتصال ميدانياً، والتعرف على المنطقة وقياس النطاق الترددي (تزامن 20)، وعرض أفضل N نتائج قابلة للنسخ؛ يتم كتابة بيانات إعادة الاختبار في المكتبة المحلية كسجلات اختبار عادية، لكن قائمة الاختيار نفسها لا تُخزن. سبر المسارات ونقاط قياس السرعة: route_probe.py هو كاشف مستقل لتصنيف مسارات التوجيه، يقوم بتحديد ASN للمسار الصادر و Traceroute خطوة بخطوة للتمييز بين المسارات الممتازة/العادية/المختلطة (يتطلب أمر ping). يتم قياس السرعة افتراضياً عبر speed.cloudflare.com، وبسبب احتمال تقييد التدفق عند القياس المكثف، يقترح README نشر cf_speedtest_worker.js على Cloudflare Workers كنطاق قياس سرعة ذاتي لتجنب قيود CPU في النسخة المجانية. الواجهات والأوامر: تشمل Web API مسارات GET / (الواجهة)، /api/status، /api/stats، /api/table، /api/optimize، /api/copy، /api/export، ومسارات POST /api/control، /api/settings، /api/test. تغطي معلمات سطر الأوامر الشائعة: المنافذ، عدد المرشحين لكل جولة، التزامن، ميزانية التحقق والنطاق الترددي، نسبة exploit، أقصى تأخير، ميزانية فحص المسار ودورة إعادة الاختبار، IPv6، وضع الجولة الواحدة/المتعددة، الفاصل الزمني، مراجعة عناوين IP عالية الجودة فقط، استيراد البذور، التصدير حسب العدد والمنطقة، والحد الأعلى لـ IP في المكتبة؛ كما يدعم --stats لعرض إحصائيات المكتبة ونسبة التغطية. IPv6: يتم استخدام قوائم v6 المختارة العامة (مطابقة للمشغل + مصادر عامة) كأولوية في أخذ العينات، مع إدراج نطاقات v6 الرسمية لـ CF في الاكتشاف العشوائي، ويتطلب ذلك توفر شبكة IPv6 في الجهاز. تشمل الملفات أيضاً cf_settings.json الاختياري (معلمات الواجهة)، و vendor/ba-click-fx.js (مكتبة تأثيرات النقر بأسلوب Blue Archive، ترخيص MIT، استضافة محلية)؛ يتم إنشاء بيانات تسجيل الدخول، الشهادات الموقعة ذاتياً، ذاكرة تخزين الخلفيات، وملفات بيانات ASN تلقائياً عند التشغيل. المشروع يتبع ترخيص MIT.