
أداة سريعة وبسيطة لتوليد حركة مرور HTTP/S "عضوية".
مولد حركة مرور HTTP/S سريع وقذر و"عضوي".
مجرد نص بايثون بسيط (مكتوب بشكل سيء) يتصفح الإنترنت بدون هدف عن طريق البدء من ROOT_URLS محددة مسبقًا والنقر عشوائيًا على الروابط في الصفحات حتى يتم الوصول إلى MAX_DEPTH المحدد مسبقًا.
أنشأت هذا كمولد ضوضاء لاستخدامه في محاكاة الاستجابة للحوادث / الدفاع عن الشبكة. المشكلة الوحيدة هي أن بيئة المحاكاة الخاصة بي تستخدم أجهزة IDS/IPS/NGFW متعددة لن تمرر وتسجل عمليات إعادة تشغيل TCP البسيطة لحركة المرور المعلبة. كنت بحاجة إلى أن تكون حركة المرور عضوية قدر الإمكان، لتقليد المستخدمين الحقيقيين الذين يتصفحون الويب بشكل أساسي.
تم اختباره على Ubuntu 14.04 و 16.04 الصغرى، ولكنه يجب أن يعمل على أي نظام مثبت عليه Python.
بسيط بقدر ما يمكن...
أولاً، حدد بعض الإعدادات في أعلى النص...
MAX_DEPTH = 10, MIN_DEPTH = 5 بدءًا من كل عنوان URL جذر (مثل: www.yahoo.com)، سينقر المولد الخاص بنا إلى عمق يتم اختياره عشوائيًا بين MIN_DEPTH و MAX_DEPTH.الفاصل الزمني بين كل طلب HTTP GET يتم اختياره عشوائيًا بين المتغيرين التاليين...
MIN_WAIT = 5 انتظر على الأقل 5 ثوانٍ بين الطلبات... كن حذرًا من تقديم الطلبات بسرعة كبيرة لأن ذلك يميل إلى إغضاب خوادم الويب.
MAX_WAIT = 10 أعتقد أنك فهمت الفكرة.
DEBUG = False مسجل الرجل الفقير. قم بتعيينه إلى True للحصول على طباعة مفصلة في الوقت الحقيقي على وحدة التحكم لتصحيح الأخطاء أو التطوير. سأدمج تسجيلًا مناسبًا لاحقًا (ربما).
ROOT_URLS = [url1,url2,url3] قائمة عناوين URL الجذرية للبدء منها عند التصفح. يتم اختيارها عشوائيًا.
blacklist = [".gif", "intent/tweet", "badlink", etc...] قائمة سوداء من السلاسل التي نتحقق من كل رابط مقابلها. إذا كان الرابط يحتوي على أي من السلاسل في هذه القائمة، يتم تجاهله. مفيد لتجنب الأشياء غير الصديقة لمولد حركة المرور مثل روابط 'Tweet this!' أو روابط لملفات الصور.
userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3).......' لقد خمنت ذلك، وكيل المستخدم الذي يسلمه متصفحنا بدون رأس إلى خادم الويب. يمكنك على الأرجح تركه على الإعداد الافتراضي، لكن لا تتردد في تغييره. أقترح بشدة استخدام وكيل مستخدم شائع/صالح وإلا فمن المحتمل أن تتعرض لتقييد السرعة بسرعة.
الشيء الوحيد الذي تحتاجه وقد لا يكون موجودًا هو requests. احصل عليه باستخدام
sudo pip install requests
أنشئ ملف التكوين الخاص بك أولاً:
cp config.py.template config.py
شغل المولد:
python gen.py
للحصول على مزيد من التفاصيل حول ما يحدث تحت الغطاء، قم بتغيير متغير Debug في config.py من False إلى True. يوفر هذا المخرجات التالية...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Traffic generator started
Diving between 3 and 10 links deep into 489 different root URLs,
Waiting between 5 and 10 seconds between requests.
This script will run indefinitely. Ctrl+C to stop.
Randomly selecting one of 489 URLs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Recursively browsing [https://arstechnica.com] ~~~ [depth = 7]
Requesting page...
Page size: 77.6KB
Data meter: 77.6KB
Good requests: 1
Bad reqeusts: 0
Scraping page for links
Found 171 valid links
Pausing for 7 seconds...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Recursively browsing [https://arstechnica.com/author/jon-brodkin/] ~~~ [depth = 6]
Requesting page...
Page size: 75.7KB
Data meter: 153.3KB
Good requests: 2
Bad reqeusts: 0
Scraping page for links
Found 168 valid links
Pausing for 9 seconds...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Recursively browsing [https://arstechnica.com/information-technology/2020/01/directv-races-to-decommission-broken-boeing-satellite-before-it-explodes/] ~~~ [depth = 5]
Requesting page...
Page size: 43.8KB
Data meter: 197.1KB
Good requests: 3
Bad reqeusts: 0
Scraping page for links
Found 32 valid links
Pausing for 8 seconds...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Recursively browsing [https://www.facebook.com/sharer.php?u=https%3A%2F%2Farstechnica.com%2F%3Fpost_type%3Dpost%26p%3D1647915] ~~~ [depth = 4]
Requesting page...
Page size: 64.2KB
Data meter: 261.2KB
Good requests: 4
Bad reqeusts: 0
Scraping page for links
Found 0 valid links
Stopping and blacklisting: no links
URL الأخير الذي تمت محاولته يقدم مثالاً جيدًا على الوقت الذي يلقي فيه عنوان URL معين خطأ. نحن ببساطة نضيفه إلى مصفوفة config.blacklist في الذاكرة، ونواصل التصفح. هذا يمنع عنوان URL سيئ معروف من العودة إلى قائمة الانتظار.