मुझे एक बार विरासत कोड मिला जहां सोचा जो आईपी पते को 4 int के रूप में संग्रहीत करता था, वास्तव में अच्छी बात थी, सिवाय इसके कि उन्होंने अपना पूरा समय int में/से बदल दिया।
उन्हें डेटाबेस में तारों के रूप में रखना बहुत आसान था, और इसे केवल एक ही अनुक्रमणिका की आवश्यकता थी। आप आश्चर्यचकित होंगे कि एसक्यूएल सर्वर पूर्णांक के 4 कॉलम के विपरीत तारों को कैसे अनुक्रमणित कर सकता है। लेकिन यह आईपी सूची ब्लैकलिस्टिंग के लिए नहीं थी। एक डेटाबेस दौर यात्रा बहुत महंगा है।
एक डेटाबेस overkill है, उन्हें स्मृति में एक शब्दकोश में स्टोर है, लेकिन यह सिर्फ एक अनुमान है, क्योंकि हम पता नहीं कितने आप तुलना करने की आवश्यकता है। चूंकि अधिकांश हैशकोड 32-बिट int हैं, और आईपीवी 4 पते 32 बिट हैं, आईपी एड्रेस स्वयं ही एक अच्छा हैशकोड हो सकता है।
लेकिन जैसा कि अन्य इंगित करते हैं, सबसे अच्छा विकल्प आपके सर्वर पर लोड को कम करने और विशेष हार्डवेयर खरीदने के लिए हो सकता है। हो सकता है कि आप हाल ही में स्मृति में आईपी की ब्लैकलिस्टेड रखें और समय-समय पर राउटर में नया प्रकाशित करें।
आप एक एक रूटर के अंदर कुछ सॉफ्टवेयर बनाने की कोशिश कर रहे हैं, तो आप अपने डेटा संरचनाओं किताब की मछली और एक बी-वृक्ष की तरह कुछ बनाने की आवश्यकता होगी।
स्रोत
2008-10-02 05:08:43
अपने काली सूची है डेटाबेस में, स्मृति में लोड की गई एक फ़ाइल, क्या? –
इससे कोई फ़र्क नहीं पड़ता कि ब्लैकलिस्ट कहां स्थित है। इसकी अभी भी सीपीयू की तुलना की जाएगी। लेकिन अगर आपको लगता है कि मुझे अपने प्रश्न में इसका जिक्र करना चाहिए, तो कृपया मुझे बताएं कि ब्लैकलिस्ट का स्थान महत्वपूर्ण क्यों है। – MrValdez
@MrValdez: डिस्क से ब्लैकलिस्ट लाने का समय उस समय से अधिक हो जाएगा जब तक उसकी सभी प्रविष्टियों को int से स्ट्रिंग या इसके विपरीत में परिवर्तित नहीं किया जा सके। – MSalters