
एक त्वरित और सरल HTTP/S "जैविक" ट्रैफ़िक जनरेटर।
एक त्वरित और गंदा HTTP/S "ऑर्गेनिक" ट्रैफ़िक जनरेटर।
यह सिर्फ़ एक साधारण (बुरी तरह लिखा गया) Python स्क्रिप्ट है जो पूर्व-परिभाषित ROOT_URLS से शुरू करके और पृष्ठों पर लिंक पर बेतरतीब ढंग से "क्लिक" करते हुए तब तक इंटरनेट पर लक्ष्यहीन रूप से "ब्राउज़" करती है जब तक कि पूर्व-परिभाषित MAX_DEPTH पूरा नहीं हो जाता।
मैंने इसे एक Incident Response / Network Defense सिमुलेशन के लिए नॉइज़ जनरेटर के रूप में बनाया है। एकमात्र समस्या यह है कि मेरे सिमुलेशन वातावरण में कई IDS/IPS/NGFW डिवाइस हैं जो कैन्ड ट्रैफ़िक के साधारण TCPreplays को पास और लॉग नहीं करेंगे। मुझे ट्रैफ़िक को यथासंभव ऑर्गेनिक बनाने की आवश्यकता थी, मूल रूप से वास्तविक उपयोगकर्ताओं के वेब ब्राउज़ करने की नकल करते हुए।
Ubuntu 14.04 और 16.04 minimal पर परीक्षण किया गया है, लेकिन 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).......' आपने सही समझा, यह user-agent है जो हमारा हेडलेस ब्राउज़र वेब सर्वर को सौंपता है। आप शायद इसे डिफ़ॉल्ट पर छोड़ सकते हैं, लेकिन बेझिझक इसे बदल सकते हैं। मैं दृढ़ता से सुझाव दूँगा कि एक सामान्य/मान्य user-agent का उपयोग करें अन्यथा आपको जल्दी rate-limited किए जाने की संभावना है।
केवल एक चीज़ जो आपको चाहिए और शायद आपके पास नहीं है वह है requests। इसे प्राप्त करें:
sudo pip install requests
पहले अपनी कॉन्फ़िग फ़ाइल बनाएं:
cp config.py.template config.py
जनरेटर चलाएं:
python gen.py
यह जानने के लिए कि पर्दे के पीछे क्या हो रहा है, config.py में Debug वेरिएबल को 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