
HULK DoS टूल, कुछ अतिरिक्त सुविधाओं के साथ Go में पोर्ट किया गया।
HULK DoS टूल Python से Go भाषा में पोर्ट किया गया है। मूल Python उपयोगिता Barry Shteiman द्वारा http://www.sectorix.com/2012/05/17/hulk-web-server-dos-tool/ मैंने बस कोड को जल्दी और बिना सफाई के पोर्ट कर दिया। मूल फ़ंक्शन नाम रखे गए हैं और मूल तर्क भी अधिकतर वैसा ही रखा गया है।
Python संस्करण से मुख्य अंतर Golang की concurrency वास्तुकला में है: goroutines। hulk.py कनेक्शन पूल में प्रत्येक कनेक्शन के लिए एक नया थ्रेड चलाता है, इसलिए यह सैकड़ों और हजारों थ्रेड्स का उपयोग करता है। hulk.go केवल हल्के goroutines का उपयोग करता है जो केवल दसियों थ्रेड्स का उपयोग करते हैं (आमतौर पर golang runtime ने प्रत्येक CPU कोर के लिए एक थ्रेड + कई सेवा थ्रेड्स शुरू किए)। यह वास्तुकला golang संस्करण को संसाधनों का बेहतर उपभोग करने की अनुमति देती है और उसी हार्डवेयर पर Python संस्करण की तुलना में बहुत अधिक कनेक्शन पूल प्राप्त करती है।
यह टूल स्ट्रेस टेस्टिंग के लिए लक्षित है और यह वास्तव में खराब कॉन्फ़िगर किए गए सर्वर या खराब बने ऐप को डाउन कर सकता है। इसे सावधानी से उपयोग करें।
उदाहरण:
$ hulk -site http://example.com/test/ 2>/dev/null
$ HULKMAXPROCS=4096 hulk -site http://example.com 2>/tmp/errlog
उपयोगी पर्यावरण चर:
अधिक विवरण: http://old.siberian.laika.name/node/7
अद्यतन: खैर, मैंने यह उपयोगिता एक बार के कार्य के लिए बनाई थी जब मैंने golang के साथ थोड़ा खिलवाड़ किया था। आश्चर्यजनक रूप से मैंने पाया कि इस उपयोगिता का उपयोग अन्य लोगों द्वारा किया जाता है, github पर कुछ स्टार मिले और यहाँ तक कि BlackArch Linux डिस्ट्रो में भी शामिल की गई। इसलिए मैंने कोड को थोड़ा साफ किया।
मुझे लगता है कि यह public domain हो सकता है क्योंकि यह कोड का एक सरल और छोटा टुकड़ा है, लेकिन जिस कारण से मुझे अब याद नहीं है, मैंने इसके लिए GPL चुना है। ठीक है। तो, HULK का Go संस्करण GPLv3 के तहत लाइसेंस प्राप्त है। LICENSE देखें।
मेरा Python में मूल HULK उपयोगिता से कोई संबंध नहीं है। मूल HULK उपयोगिता Barry Shteiman (http://sectorix.com) की है। मूल स्रोत में लाइसेंस का कोई संदर्भ नहीं है, इसलिए यह GPL के अंतर्गत नहीं है। मूल उपयोगिता के लेखक से लाइसेंस के बारे में पूछें।