Back to Blog

डिस्कॉर्ड बॉट्स के लिए प्रॉक्सी: बिना बैन और रेट लिमिट्स के ऑटोमेशन सेटअप कैसे करें

Discord बॉट्स के लिए प्रॉक्सी सेटअप का पूरा गाइड: प्रॉक्सी के प्रकार का चयन, IP रोटेशन सेटअप, रेट लिमिट्स को बायपास करना और ऑटोमेशन के दौरान बैन से सुरक्षा।

📅January 20, 2026
```html

Discord स्वचालन और बॉट्स के खिलाफ सक्रिय रूप से लड़ता है, उन्नत पहचान प्रणालियों का उपयोग करते हुए: IP पते, व्यवहार पैटर्न और दर सीमाओं का विश्लेषण। यदि आप सर्वरों में मॉडरेशन, प्रचार या क्रियाओं के स्वचालन के लिए बॉट्स चला रहे हैं, तो सही तरीके से सेटअप न की गई प्रॉक्सी के बिना, आप पहले घंटों में ही बैन का सामना कर सकते हैं। इस मार्गदर्शिका में, हम देखेंगे कि Discord के लिए कौन सी प्रॉक्सी उपयुक्त हैं, IP रोटेशन कैसे सेट करें और प्लेटफ़ॉर्म की सुरक्षा तंत्रों को कैसे बायपास करें।

Discord बॉट्स को बैन क्यों करता है और सुरक्षा कैसे काम करती है

Discord स्वचालन के खिलाफ एक बहुस्तरीय सुरक्षा प्रणाली का उपयोग करता है, जो एक साथ कई मापदंडों का विश्लेषण करता है। प्लेटफ़ॉर्म केवल एक IP से अनुरोधों की संख्या की जांच नहीं करता है - यह प्रत्येक कनेक्शन के व्यवहार का प्रोफ़ाइल बनाता है और इसे सामान्य उपयोगकर्ताओं के पैटर्न के साथ तुलना करता है।

Discord में बॉट्स का पता लगाने के मुख्य तंत्र:

  • दर सीमाएँ — Discord समय की एक इकाई में क्रियाओं की संख्या पर सख्त सीमाएँ लगाता है। उदाहरण के लिए, एक खाते से 5 सेकंड में 5 संदेश, प्रति मिनट 50 API अनुरोध। सीमाओं को पार करने पर अस्थायी बैन (HTTP 429) होता है।
  • IP पते का विश्लेषण — यदि एक IP से कई बॉट काम कर रहे हैं या संदिग्ध गतिविधि (खातों का तेजी से परिवर्तन, सामूहिक क्रियाएँ) देखी जाती है, तो Discord पूरे IP पते को कुछ घंटों या दिनों के लिए बैन कर सकता है।
  • कनेक्शनों का फ़िंगरप्रिंटिंग — प्लेटफ़ॉर्म तकनीकी मापदंडों का विश्लेषण करता है: User-Agent, अनुरोधों के हेडर, पुस्तकालय का संस्करण, प्रतिक्रिया का समय। यदि मापदंड सामान्य Discord क्लाइंट से मेल नहीं खाते हैं, तो खाते को संदिग्ध के रूप में चिह्नित किया जाता है।
  • व्यवहारात्मक विश्लेषण — Discord क्रियाओं के पैटर्न को ट्रैक करता है: बहुत तेज प्रतिक्रियाएँ, संदेशों के बीच आदर्श अंतराल, क्रियाओं में यादृच्छिकता की कमी। कठोर एल्गोरिदम पर काम करने वाले बॉट्स को जल्दी से पहचाना जाता है।

प्रॉक्सी के बिना बैन होने के सामान्य परिदृश्य:

  • एक घरेलू IP से 3-5 बॉट्स चलाना — काम शुरू करने के बाद 2-6 घंटों में IP का बैन
  • सर्वर पर आमंत्रण का सामूहिक प्रचार — 10-15 भेजे गए आमंत्रणों के बाद खाते और IP का बैन
  • स्वचालित मॉडरेशन (संदेश हटाना, भूमिकाएँ देना) — एक IP से प्रति घंटे 100 क्रियाओं को पार करने पर बैन
  • सर्वरों के सदस्यों का पार्सिंग — 200-300 प्रोफाइल स्कैन करने के बाद पहचान और बैन

प्रॉक्सी इन समस्याओं का समाधान करती हैं, विभिन्न IP पतों के बीच अनुरोधों को वितरित करके और विभिन्न स्थानों से सामान्य उपयोगकर्ताओं की उपस्थिति बनाने का आभास देकर। लेकिन सही प्रॉक्सी प्रकार का चयन करना और रोटेशन सेट करना महत्वपूर्ण है - गलत कॉन्फ़िगरेशन तेजी से बैन का कारण बन सकती है।

Discord बॉट्स के लिए कौन से प्रकार की प्रॉक्सी उपयुक्त हैं

प्रॉक्सी के प्रकार का चयन आपके कार्यों पर निर्भर करता है: बॉट्स की संख्या, अनुरोधों की आवृत्ति, बजट और आवश्यक गुमनामी का स्तर। Discord के लिए तीन मुख्य प्रकार की प्रॉक्सी और उनका उपयोग देखें।

प्रॉक्सी का प्रकार फायदे नुकसान उपयुक्त के लिए
डेटा सेंटर प्रॉक्सी उच्च गति (पिंग 10-50 मि.से.), कम कीमत ($1-3 प्रति IP/माह), स्थिरता Discord आसानी से डेटा सेंटर के IP को पहचानता है, सामूहिक क्रियाओं के दौरान बैन का उच्च जोखिम परीक्षण, आसान स्वचालन (1-2 बॉट), बिना सामूहिक अनुरोधों के कार्य
रिहायशी प्रॉक्सी वास्तविक घरेलू उपयोगकर्ताओं के IP, बैन का न्यूनतम जोखिम, बड़े पूल के पते (लाखों IP) मध्यम गति (पिंग 100-300 मि.से.), उच्च कीमत ($5-15 प्रति GB ट्रैफिक), कुछ IP की अस्थिरता सामूहिक प्रचार, सर्वरों का पार्सिंग, 5+ बॉट्स के साथ काम करना, दीर्घकालिक परियोजनाएँ
मोबाइल प्रॉक्सी मोबाइल ऑपरेटरों के IP (4G/5G), Discord पर अधिकतम विश्वास, IP का गतिशील परिवर्तन उच्च कीमत ($50-150 प्रति IP/माह), छोटे पूल के पते, कनेक्शन में कटौती हो सकती है महत्वपूर्ण खाते, कठोर बैन को बायपास करना, उच्च मूल्य वाले खातों के साथ काम करना

विभिन्न कार्यों के लिए चयन के लिए सिफारिशें:

मॉडरेशन और सर्वर प्रबंधन (1-3 बॉट): स्थिर IP के साथ रिहायशी प्रॉक्सी। एक बॉट — एक IP, बिना रोटेशन के। यह एक स्थिर कनेक्शन प्रोफ़ाइल बनाता है, जिसे Discord एक सामान्य प्रशासनिक उपयोगकर्ता के रूप में मानता है।

सामूहिक प्रचार और आमंत्रण (10+ बॉट): हर 5-10 मिनट में रोटेशन के साथ रिहायशी प्रॉक्सी। लोड को वितरित करें: एक IP से प्रति घंटे 20 क्रियाओं से अधिक नहीं। 10 बॉट्स के लिए 50+ IP पतों का पूल का उपयोग करें।

सदस्यों और सर्वरों का पार्सिंग: तेज रोटेशन (हर 1-3 मिनट) के साथ रिहायशी प्रॉक्सी या मोबाइल प्रॉक्सी। पार्सिंग सबसे जोखिम भरी गतिविधियों में से एक है, Discord आसानी से स्कैनिंग पैटर्न को पहचानता है। अनुरोधों के बीच यादृच्छिक देरी का उपयोग करें (30-120 सेकंड)।

परीक्षण और विकास: कार्यक्षमता को डिबग करने के लिए डेटा सेंटर प्रॉक्सी पर्याप्त हैं। लेकिन उत्पादन में जाने से पहले, रिहायशी प्रॉक्सी पर स्विच करना सुनिश्चित करें - Discord का व्यवहार विभिन्न प्रकार के IP के लिए बहुत भिन्न हो सकता है।

एक महत्वपूर्ण बिंदु: Discord विशेष रूप से कुछ देशों और क्षेत्रों के IP पतों के प्रति सख्त है। रूस, चीन, वियतनाम, भारत के IP अधिक स्पैमर गतिविधि के कारण अधिक कठोर जांच के अधीन होते हैं। यदि आपका लक्षित दर्शक अमेरिका या यूरोप में है, तो इन क्षेत्रों से प्रॉक्सी का उपयोग करें - इससे बैन की संभावना 40-60% कम हो जाएगी।

प्रॉक्सी के माध्यम से Discord की दर सीमाओं को कैसे बायपास करें

Discord में दर सीमाएँ API के प्रति समय की एक इकाई में अनुरोधों की संख्या पर सीमाएँ होती हैं। ये दो प्रकार की होती हैं: वैश्विक (पूरे एप्लिकेशन के लिए) और प्रति-मार्ग (विशिष्ट एंडपॉइंट के लिए)। प्रॉक्सी विभिन्न IP के बीच लोड को वितरित करने में मदद करती हैं, लेकिन इसका मतलब यह नहीं है कि सीमाओं की अनदेखी की जा सकती है - Discord बॉट के टोकन के स्तर पर गतिविधि को ट्रैक करता है।

Discord API की मुख्य दर सीमाएँ:

  • संदेश भेजना: एक चैनल में 5 संदेश प्रति 5 सेकंड, बॉट के लिए 10 सेकंड में 50 संदेश
  • चैनल बनाना/हटाना: 10 मिनट में 50 अनुरोध
  • सदस्यों की भूमिकाएँ बदलना: 10 अनुरोध प्रति 10 सेकंड
  • सदस्यों की सूची प्राप्त करना: प्रति सेकंड 1 अनुरोध (सबसे सख्त सीमा)
  • DM (व्यक्तिगत संदेश) भेजना: 5 DM प्रति 5 सेकंड, अनजान उपयोगकर्ताओं को सामूहिक संदेश भेजने पर बैन

जब आप सीमा को पार करते हैं, तो Discord HTTP 429 (बहुत अधिक अनुरोध) के साथ एक प्रतिक्रिया लौटाता है, जिसमें Retry-After हेडर होता है, जो सेकंड में प्रतीक्षा समय को इंगित करता है। इस प्रतिक्रिया को सही तरीके से संभालना महत्वपूर्ण है।

प्रॉक्सी के साथ दर सीमाओं को बायपास करने की रणनीति:

# Python (discord.py) में दर सीमा पर प्रॉक्सी के साथ रोटेशन का उदाहरण

import discord
from discord.ext import commands
import aiohttp
import asyncio
import random

class ProxyRotator:
    def __init__(self, proxy_list):
        self.proxies = proxy_list  # ['http://user:pass@ip:port', ...]
        self.current_index = 0
        self.failed_proxies = set()
    
    def get_next_proxy(self):
        # काम नहीं करने वाली प्रॉक्सी को छोड़ें
        available = [p for p in self.proxies if p not in self.failed_proxies]
        if not available:
            self.failed_proxies.clear()  # पूर्ण चक्र के बाद रीसेट
            available = self.proxies
        
        proxy = available[self.current_index % len(available)]
        self.current_index += 1
        return proxy
    
    def mark_failed(self, proxy):
        self.failed_proxies.add(proxy)

# प्रारंभिक सेटअप
proxy_rotator = ProxyRotator([
    'http://user1:pass1@192.168.1.1:8080',
    'http://user2:pass2@192.168.1.2:8080',
    # ... स्थिरता के लिए 10-20 प्रॉक्सी जोड़ें
])

intents = discord.Intents.default()
bot = commands.Bot(command_prefix='!', intents=intents)

async def send_with_retry(channel, message, max_retries=3):
    """दर सीमाओं के साथ स्वचालित रूप से संदेश भेजना"""
    for attempt in range(max_retries):
        try:
            # प्रत्येक प्रयास में नया प्रॉक्सी प्राप्त करें
            proxy = proxy_rotator.get_next_proxy()
            
            # Discord.py अंदर aiohttp का उपयोग करता है, प्रॉक्सी सेट करें
            connector = aiohttp.TCPConnector()
            async with aiohttp.ClientSession(connector=connector) as session:
                bot.http.connector = connector
                bot.http.proxy = proxy
                
                await channel.send(message)
                return True
                
        except discord.HTTPException as e:
            if e.status == 429:  # दर सीमा
                retry_after = e.retry_after if hasattr(e, 'retry_after') else 5
                print(f"दर सीमा! {retry_after} सेकंड प्रतीक्षा कर रहे हैं, प्रॉक्सी बदल रहे हैं...")
                
                # प्रॉक्सी को अस्थायी रूप से अनुपलब्ध के रूप में चिह्नित करें
                proxy_rotator.mark_failed(proxy)
                
                # देरी में यादृच्छिकता जोड़ें
                await asyncio.sleep(retry_after + random.uniform(1, 3))
            else:
                print(f"संदेश भेजने में त्रुटि: {e}")
                await asyncio.sleep(2)
    
    return False

@bot.event
async def on_ready():
    print(f'बॉट चालू है: {bot.user}')

# उपयोग का उदाहरण
@bot.command()
async def mass_send(ctx):
    channels = ctx.guild.text_channels[:5]  # पहले 5 चैनल
    
    for channel in channels:
        success = await send_with_retry(channel, "परीक्षण संदेश")
        if success:
            print(f"{channel.name} में भेजा गया")
        
        # चैनलों के बीच यादृच्छिक देरी
        await asyncio.sleep(random.uniform(3, 7))
    

दर सीमाओं को बायपास करने के प्रमुख सिद्धांत:

  • हमेशा HTTP 429 को संभालें: Retry-After हेडर की अनदेखी न करें। Discord बार-बार उल्लंघनों पर बैन के समय को बढ़ाता है (5 सेकंड से 60 और उससे अधिक)।
  • यादृच्छिकता जोड़ें: अनुरोधों के बीच की देरी यादृच्छिक होनी चाहिए (उदाहरण के लिए, 2-5 सेकंड के बजाय निश्चित 3 सेकंड)। यह मानव व्यवहार की नकल करता है।
  • लोड वितरित करें: यदि आपके पास 10 बॉट्स और 20 प्रॉक्सी हैं, तो प्रत्येक बॉट को रोटेशन के लिए 2 प्रॉक्सी सौंपें। सभी बॉट्स के लिए एक ही प्रॉक्सी का उपयोग न करें।
  • प्रॉक्सी की गुणवत्ता की निगरानी करें: कुछ IP पहले से ही Discord द्वारा बैन किए जा सकते हैं। स्वचालित रूप से उन प्रॉक्सी को बाहर करें जो लगातार 403 या 429 प्राप्त कर रहे हैं।

विभिन्न कार्यों के लिए IP रोटेशन रणनीतियाँ

प्रॉक्सी का रोटेशन केवल हर N मिनट में IP को यादृच्छिक रूप से बदलने के बारे में नहीं है। सही रणनीति बॉट की गतिविधि के प्रकार और Discord के लिए कनेक्शन की स्थिरता की आवश्यकताओं पर निर्भर करती है। चार मुख्य दृष्टिकोण देखें।

1. स्थिर IP (बिना रोटेशन)

कब उपयोग करें: मॉडरेशन बॉट्स, सर्वर प्रबंधन बॉट्स, संगीत बॉट्स, सर्वर पर स्थायी उपस्थिति वाले बॉट्स।

तर्क: एक बॉट = पूरे कार्यकाल के लिए एक IP पता (सप्ताह, महीने)। Discord इस प्रकार के कनेक्शन को एक सामान्य प्रशासनिक उपयोगकर्ता के रूप में मानता है, जो हमेशा एक ही स्थान से लॉग इन करता है।

सेटअप:

# Python (discord.py) - स्थिर प्रॉक्सी
import discord
from discord.ext import commands

PROXY = 'http://username:password@192.168.1.100:8080'

intents = discord.Intents.default()
bot = commands.Bot(command_prefix='!', intents=intents, proxy=PROXY)

# प्रॉक्सी इस बॉट के सभी अनुरोधों के लिए उपयोग की जाएगी
bot.run('YOUR_BOT_TOKEN')
    

फायदे: अधिकतम स्थिरता, IP द्वारा बैन का न्यूनतम जोखिम, सरल सेटअप।

नुकसान: यदि IP बैन हो जाता है, तो प्रॉक्सी को मैन्युअल रूप से बदलना होगा और बॉट सत्र को फिर से बनाना होगा।

2. समय के अनुसार रोटेशन

कब उपयोग करें: प्रचार बॉट्स, मध्यम गतिविधि वाले बॉट्स (10-50 क्रियाएँ प्रति घंटा), कम आवृत्ति के साथ डेटा पार्सिंग।

तर्क: IP हर 5-15 मिनट में टाइमर के अनुसार बदलता है, अनुरोधों की संख्या की परवाह किए बिना। यह एक उपयोगकर्ता की नकल करता है जो इंटरनेट से फिर से कनेक्ट होता है (उदाहरण के लिए, गतिशील IP के साथ मोबाइल इंटरनेट)।

सिफारिश की गई अंतराल:

  • कम गतिविधि (5-10 क्रियाएँ/घंटा): हर 10-15 मिनट में रोटेशन
  • मध्यम गतिविधि (20-40 क्रियाएँ/घंटा): हर 5-7 मिनट में रोटेशन
  • उच्च गतिविधि (50+ क्रियाएँ/घंटा): हर 2-3 मिनट में रोटेशन + दर सीमा पर अतिरिक्त रोटेशन
# JavaScript (discord.js) - समय के अनुसार रोटेशन
const { Client, GatewayIntentBits } = require('discord.js');
const HttpsProxyAgent = require('https-proxy-agent');

const proxies = [
    'http://user1:pass1@ip1:port',
    'http://user2:pass2@ip2:port',
    'http://user3:pass3@ip3:port',
];

let currentProxyIndex = 0;

function getProxyAgent() {
    const proxy = proxies[currentProxyIndex];
    currentProxyIndex = (currentProxyIndex + 1) % proxies.length;
    return new HttpsProxyAgent(proxy);
}

const client = new Client({
    intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages],
    rest: { agent: getProxyAgent() }
});

// हर 5 मिनट में रोटेशन
setInterval(() => {
    console.log('प्रॉक्सी बदल रहा है...');
    client.rest.setAgent(getProxyAgent());
}, 5 * 60 * 1000);

client.login('YOUR_BOT_TOKEN');
    

3. अनुरोधों की संख्या के अनुसार रोटेशन

कब उपयोग करें: सामूहिक पार्सिंग, सर्वरों के सदस्यों का स्क्रैपिंग, स्वचालित आमंत्रण।

तर्क: IP N पूर्ण अनुरोधों के बाद बदलता है (उदाहरण के लिए, हर 20-50 अनुरोध)। यह लोड को समान रूप से वितरित करने और एक IP से क्रियाओं की अदृश्य सीमाओं को पार न करने की अनुमति देता है।

अनुशंसित मान N:

  • सदस्यों का पार्सिंग: 30-50 अनुरोध प्रति IP (स्कैनिंग पैटर्न का पता लगाने से बचने के लिए)
  • DM भेजना: 10-15 संदेश प्रति IP (Discord विशेष रूप से सामूहिक DM के प्रति सख्त है)
  • आमंत्रण बनाना: 20-30 आमंत्रण प्रति IP

4. अनुकूलन रोटेशन (त्रुटियों पर)

कब उपयोग करें: महत्वपूर्ण बॉट्स, उच्च मूल्य वाले खातों के साथ काम करना, कठोर बैन को बायपास करना।

तर्क: IP त्रुटियों 429 (दर सीमा), 403 (प्रतिबंधित), या टाइमआउट पर स्वचालित रूप से बदलता है। प्रणाली "खराब" IP को याद रखती है और उन्हें रोटेशन से अस्थायी रूप से बाहर करती है।

# Python - ब्लैकलिस्ट के साथ अनुकूलन रोटेशन
import time
from collections import defaultdict

class AdaptiveProxyRotator:
    def __init__(self, proxies):
        self.proxies = proxies
        self.current = 0
        self.error_count = defaultdict(int)
        self.blacklist_until = {}  # {proxy: timestamp}
    
    def get_proxy(self):
        now = time.time()
        
        # ब्लैकलिस्ट में प्रॉक्सी को फ़िल्टर करें
        available = [
            p for p in self.proxies 
            if p not in self.blacklist_until or self.blacklist_until[p] < now
        ]
        
        if not available:
            # यदि सभी ब्लैकलिस्ट में हैं, तो रीसेट करें और प्रतीक्षा करें
            print("सभी प्रॉक्सी ब्लैकलिस्ट में हैं, 60 सेकंड प्रतीक्षा कर रहे हैं...")
            time.sleep(60)
            self.blacklist_until.clear()
            available = self.proxies
        
        proxy = available[self.current % len(available)]
        self.current += 1
        return proxy
    
    def report_error(self, proxy, error_type):
        self.error_count[proxy] += 1
        
        # कई त्रुटियों पर अस्थायी ब्लॉक
        if self.error_count[proxy] >= 3:
            blacklist_duration = 300  # 5 मिनट
            self.blacklist_until[proxy] = time.time() + blacklist_duration
            print(f"प्रॉक्सी {proxy} ब्लैकलिस्ट में {blacklist_duration} सेकंड के लिए")
            self.error_count[proxy] = 0  # काउंटर रीसेट
    
    def report_success(self, proxy):
        # सफल अनुरोध - त्रुटियों के काउंटर को रीसेट करें
        if proxy in self.error_count:
            self.error_count[proxy] = max(0, self.error_count[proxy] - 1)
    

संयुक्त दृष्टिकोण (अनुशंसित): समय के अनुसार मूल रोटेशन (हर 5-10 मिनट) + त्रुटियों पर अनुकूलन रोटेशन का उपयोग करें। यह स्थिरता और समस्याओं पर तेज प्रतिक्रिया सुनिश्चित करता है।

लोकप्रिय पुस्तकालयों में प्रॉक्सी सेटअप: discord.py और discord.js

Discord बॉट्स बनाने के लिए दो सबसे लोकप्रिय पुस्तकालयों में प्रॉक्सी सेटअप की चरण-दर-चरण प्रक्रिया पर विचार करें। ये उदाहरण अधिकांश कार्यों के लिए उपयुक्त हैं और आपकी आवश्यकताओं के अनुसार आसानी से अनुकूलित किए जा सकते हैं।

Discord.py (Python)

Discord.py HTTP अनुरोधों के लिए aiohttp का उपयोग करता है। प्रॉक्सी को क्लाइंट बनाने के समय proxy पैरामीटर के माध्यम से सेट किया जाता है या सीधे HTTP सत्र को सेट करके।

चरण 1: निर्भरता स्थापित करना

pip install discord.py aiohttp aiohttp-socks
# aiohttp-socks SOCKS5 प्रॉक्सी के लिए आवश्यक है, HTTP/HTTPS के लिए यह अनिवार्य नहीं है
    

चरण 2: एक प्रॉक्सी के साथ मूल सेटअप

import discord
from discord.ext import commands

# प्रॉक्सी का प्रारूप: protocol://username:password@ip:port
PROXY = 'http://user:pass@192.168.1.100:8080'

intents = discord.Intents.default()
intents.message_content = True  # संदेश पढ़ने के लिए

bot = commands.Bot(
    command_prefix='!',
    intents=intents,
    proxy=PROXY  # सभी HTTP अनुरोधों के लिए प्रॉक्सी
)

@bot.event
async def on_ready():
    print(f'बॉट {bot.user} प्रॉक्सी के माध्यम से कनेक्ट किया गया!')

@bot.command()
async def ping(ctx):
    await ctx.send(f'पॉन्ग! देरी: {round(bot.latency * 1000)}ms')

bot.run('YOUR_BOT_TOKEN')
    

चरण 3: प्रॉक्सी के साथ रोटेशन सेटअप

import discord
from discord.ext import commands, tasks
import aiohttp
import random

PROXIES = [
    'http://user1:pass1@ip1:port',
    'http://user2:pass2@ip2:port',
    'http://user3:pass3@ip3:port',
]

class ProxyBot(commands.Bot):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.current_proxy = random.choice(PROXIES)
        self.proxy_rotation.start()
    
    @tasks.loop(minutes=5)  # हर 5 मिनट में रोटेशन
    async def proxy_rotation(self):
        old_proxy = self.current_proxy
        self.current_proxy = random.choice([p for p in PROXIES if p != old_proxy])
        
        # नए प्रॉक्सी के साथ HTTP सत्र को फिर से बनाएं
        await self.http.close()
        connector = aiohttp.TCPConnector(limit=0)
        self.http.connector = connector
        self.http.__session = aiohttp.ClientSession(connector=connector)
        
        print(f'प्रॉक्सी बदल गया: {old_proxy} -> {self.current_proxy}')
    
    async def close(self):
        self.proxy_rotation.cancel()
        await super().close()

intents = discord.Intents.default()
bot = ProxyBot(command_prefix='!', intents=intents)

bot.run('YOUR_BOT_TOKEN')
    

Discord.js (Node.js)

Discord.js में प्रॉक्सी का अंतर्निहित समर्थन नहीं है, इसलिए https-proxy-agent या socks-proxy-agent पुस्तकालय का उपयोग किया जाता है।

चरण 1: निर्भरता स्थापित करना

npm install discord.js https-proxy-agent
# SOCKS5 के लिए: npm install socks-proxy-agent
    

चरण 2: मूल सेटअप

const { Client, GatewayIntentBits } = require('discord.js');
const { HttpsProxyAgent } = require('https-proxy-agent');

const PROXY = 'http://user:pass@192.168.1.100:8080';
const agent = new HttpsProxyAgent(PROXY);

const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent
    ],
    rest: { agent: agent }  // REST API अनुरोधों के लिए प्रॉक्सी
});

client.on('ready', () => {
    console.log(`बॉट ${client.user.tag} प्रॉक्सी के माध्यम से कनेक्ट किया गया!`);
});

client.on('messageCreate', async (message) => {
    if (message.content === '!ping') {
        await message.reply(`पॉन्ग! WebSocket देरी: ${client.ws.ping}ms`);
    }
});

client.login('YOUR_BOT_TOKEN');
    

चरण 3: प्रॉक्सी के साथ रोटेशन

const { Client, GatewayIntentBits } = require('discord.js');
const { HttpsProxyAgent } = require('https-proxy-agent');

const PROXIES = [
    'http://user1:pass1@ip1:port',
    'http://user2:pass2@ip2:port',
    'http://user3:pass3@ip3:port',
];

let currentProxyIndex = 0;

function getNextProxy() {
    const proxy = PROXIES[currentProxyIndex];
    currentProxyIndex = (currentProxyIndex + 1) % PROXIES.length;
    return new HttpsProxyAgent(proxy);
}

const client = new Client({
    intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages],
    rest: { agent: getNextProxy() }
});

// हर 10 मिनट में रोटेशन
setInterval(() => {
    const newAgent = getNextProxy();
    client.rest.setAgent(newAgent);
    console.log('प्रॉक्सी बदल गया');
}, 10 * 60 * 1000);

client.on('ready', () => {
    console.log(`बॉट ${client.user.tag} चालू है`);
});

client.login('YOUR_BOT_TOKEN');
    

महत्वपूर्ण: WebSocket कनेक्शन (वास्तविक समय में घटनाओं को प्राप्त करने के लिए) हमेशा प्रॉक्सी का समर्थन नहीं करता है। यदि आपको WebSocket के माध्यम से कनेक्शन में समस्याएँ हैं, तो REST API अनुरोधों के लिए केवल HTTP प्रॉक्सी का उपयोग करें, और WebSocket को बिना प्रॉक्सी के छोड़ दें। महत्वपूर्ण मामलों के लिए, WebSocket कनेक्शन के लिए प्रॉक्सी के बजाय VPN का उपयोग करने पर विचार करें।

सामान्य गलतियाँ और उनसे कैसे बचें

सही तरीके से सेटअप की गई प्रॉक्सी के साथ भी, सामान्य गलतियों को करने पर बैन मिल सकता है। आइए सबसे गंभीर में से कुछ पर विचार करें और उनके समाधान देखें।

गलती 1: सभी बॉट्स के लिए एक ही प्रॉक्सी का उपयोग करना

समस्या: आप एक IP पते के माध्यम से 5-10 बॉट्स चला रहे हैं। Discord एक IP से कई खातों की समानांतर गतिविधि को देखता है और सभी खातों + IP को बैन कर देता है।

समाधान: स्थिर कार्यक्षमता के लिए "एक बॉट — एक अद्वितीय IP" का नियम। यदि आपके पास 10 बॉट्स हैं, तो कम से कम 10 विभिन्न प्रॉक्सी का उपयोग करें। महत्वपूर्ण परियोजनाओं के लिए, रोटेशन के लिए 50-100% अतिरिक्त (10 बॉट्स के लिए 15-20 प्रॉक्सी) जोड़ें।

गलती 2: IP की बहुत तेज़ रोटेशन

समस्या: आप हर 30-60 सेकंड में IP बदलते हैं, सोचते हैं कि यह बैन से बचाएगा। वास्तव में, Discord बार-बार IP बदलने को संदिग्ध गतिविधि के रूप में देखता है - सामान्य उपयोगकर्ता हर मिनट इंटरनेट से फिर से कनेक्ट नहीं होता।

समाधान: रोटेशन के लिए न्यूनतम अंतराल 3-5 मिनट होना चाहिए। अनुरोधों की तीव्रता के आधार पर 5-15 मिनट का अंतराल सबसे अच्छा है। अपवाद - दर सीमा (429) पर अनुकूलन रोटेशन।

गलती 3: प्रॉक्सी की भू-स्थान की अनदेखी

समस्या: आपका बॉट अमेरिका में सर्वर पर "जीवित" है, लेकिन रूस, चीन या भारत से प्रॉक्सी का उपयोग कर रहा है। Discord सर्वर की घोषित स्थान और IP पते के बीच असंगति को देखता है, जिससे संदेह बढ़ता है।

समाधान: उस देश/क्षेत्र से प्रॉक्सी का उपयोग करें जहाँ आपका Discord सर्वर या लक्षित दर्शक है। अंतरराष्ट्रीय परियोजनाओं के लिए, अमेरिका या यूरोप से प्रॉक्सी का चयन करें - इनकी Discord पर बेहतर प्रतिष्ठा है।

गलती 4: त्रुटियों को संभालने की कमी

समस्या: बॉट HTTP 429 (दर सीमा) प्राप्त करता है और अनुरोध भेजना जारी रखता है, स्थिति को और खराब करता है। Discord प्रत्येक प्रयास पर बैन के समय को बढ़ाता है।

समाधान: हमेशा त्रुटि कोड को संभालें:

  • 429 (बहुत अधिक अनुरोध): Retry-After हेडर पढ़ें और निर्दिष्ट समय + 1-3 सेकंड प्रतीक्षा करें। प्रॉक्सी बदलें।
  • 403 (प्रतिबंधित): IP या टोकन बैन है। प्रॉक्सी बदलें, टोकन की वैधता की जाँच करें।
  • 401 (अधिकृत नहीं): बॉट का टोकन अमान्य है। Discord Developer Portal में टोकन की जाँच करें।
  • 502/504 (गेटवे त्रुटियाँ): प्रॉक्सी या Discord API के साथ समस्याएँ। 10-30 सेकंड प्रतीक्षा करें, प्रॉक्सी बदलें।

गलती 5: सार्वजनिक या सस्ते प्रॉक्सी का उपयोग

समस्या: मुफ्त या सस्ते प्रॉक्सी ($0.5-1 प्रति IP) अक्सर पहले से ही Discord द्वारा बैन किए जाते हैं, क्योंकि उनका उपयोग हजारों अन्य बॉट्स और स्पैमर्स ने किया है।

समाधान: विश्वसनीय प्रदाताओं से उच्च गुणवत्ता वाली रिहायशी प्रॉक्सी में निवेश करें। उपयोग से पहले IP की प्रतिष्ठा की जाँच करें (AbuseIPDB, IPQualityScore जैसे सेवाएँ)। $5-10 की एक उच्च गुणवत्ता वाली प्रॉक्सी $1 की 10 बैन की गई प्रॉक्सी से बेहतर है।

गलती 6: सभी बॉट्स के लिए समान User-Agent का उपयोग

समस्या: आपके सभी बॉट्स पुस्तकालय के मानक User-Agent का उपयोग करते हैं (उदाहरण के लिए, "DiscordBot (discord.py 2.0)"). Discord आसानी से ऐसे कनेक्शनों को समूहित करता है और सामूहिक स्वचालन की पहचान करता है।

समाधान: बॉट्स के बीच User-Agent को भिन्न करें। यथार्थवादी मानों का उपयोग करें:

# Python - कस्टम User-Agent
import discord

class CustomBot(discord.Client):
    async def request(self, *args, **kwargs):
        # User-Agent को ओवरराइड करें
        if 'headers' not in kwargs:
            kwargs['headers'] = {}
        kwargs['headers']['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) Discord/1.0.9015'
        return await super().request(*args, **kwargs)
    

बॉट्स के काम की निगरानी और त्रुटियों को संभालना

सही निगरानी समस्याओं का पता लगाने की अनुमति देती है इससे पहले कि वे सामूहिक बैन का कारण बनें। Discord बॉट्स के माध्यम से प्रॉक्सी के काम की निगरानी के लिए प्रमुख मेट्रिक्स और उपकरणों पर विचार करें।

निगरानी के लिए मेट्रिक्स

मेट्रिक क्या ट्रैक करें महत्वपूर्ण मान
त्रुटियों की दर 429 प्रति घंटे दर सीमा त्रुटियों की संख्या >10 प्रति घंटे — अनुरोधों की रणनीति पर पुनर्विचार करें
त्रुटियों की दर 403 IP या टोकन का बैन >3 प्रति दिन — प्रॉक्सी से समझौता किया गया
देरी (latency) प्रॉक्सी + Discord API की प्रतिक्रिया का समय >1000ms — धीमी प्रॉक्सी, बदलें
अनुरोधों की सफलता सफल अनुरोधों का प्रतिशत (HTTP 200-299) <85% — प्रॉक्सी या बॉट की लॉजिक में समस्याएँ
प्रॉक्सी का समय कितनी देर से प्रॉक्सी बिना समस्याओं के उपयोग की गई है <24 घंटे — संभवतः IP बैन में है

लॉगिंग प्रणाली का उदाहरण

# Python - मेट्रिक्स के साथ उन्नत लॉगिंग
import logging
import time
from collections import defaultdict
import json

class BotMonitor:
    def __init__(self):
        self.metrics = {
            'requests_total': 0,
            'requests_success': 0,
            'errors_429': 0,
            'errors_403': 0,
            'errors_other': 0,
            'proxy_switches': 0,
            'avg_latency': []
        }
        self.proxy_stats = defaultdict(lambda: {
            'requests': 0,
            'errors': 0,
            'last_error': None
        })
        
        # लॉगर सेटअप
        logging.basicConfig(
            level=logging.INFO,
            format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
            handlers=[
                logging.FileHandler('bot_monitor.log'),
                logging.StreamHandler()
            ]
        )
        self.logger = logging.getLogger('BotMonitor')
    
    def log_request(self, proxy, status_code, latency):
        self.metrics['requests_total'] += 1
        self.metrics['avg_latency'].append(latency)
        self.proxy_stats[proxy]['requests'] += 1
        
        if 200 <= status_code < 300:
            self.metrics['requests_success'] += 1
        elif status_code == 429:
            self.metrics['errors_429'] += 1
            self.proxy_stats[proxy]['errors'] += 1
            self.logger.warning(f'प्रॉक्सी {proxy} पर दर सीमा')
        elif status_code == 403:
            self.metrics['errors_403'] += 1
            self.proxy_stats[proxy]['errors'] += 1
            self.proxy_stats[proxy]['last_error'] = time.time()
            self.logger.error(f'प्रॉक्सी {proxy} बैन (403)');
        else:
            self.metrics['errors_other'] += 1
            self.logger.error(f'त्रुटि {status_code} प्रॉक्सी {proxy} पर');
    
    def log_proxy_switch(self, old_proxy, new_proxy):
        self.metrics['proxy_switches'] += 1
        self.logger.info(f'प्रॉक्सी बदलना: {old_proxy} -> {new_proxy}');
    
    def get_report(self):
        total = self.metrics['requests_total']
        if total == 0:
            return "कोई डेटा नहीं";
        
        success_rate = (self.metrics['requests_success'] / total) * 100
        avg_latency = sum(self.metrics['avg_latency']) / len(self.metrics['avg_latency'])
        
        report = f"""
=== बॉट निगरानी रिपोर्ट ===
कुल अनुरोध: {total}
सफल: {self.metrics['requests_success']} ({success_rate:.1f}%)
त्रुटियाँ 429 (दर सीमा): {self.metrics['errors_429']}
त्रुटियाँ 403 (बैन): {self.metrics['errors_403']}
अन्य त्रुटियाँ: {self.metrics['errors_other']}
औसत देरी: {avg_latency:.0f}ms
प्रॉक्सी स्विच: {self.metrics['proxy_switches']}

=== प्रॉक्सी सांख्यिकी ===
"""
        for proxy, stats in self.proxy_stats.items():
            error_rate = (stats['errors'] / stats['requests'] * 100) if stats['requests'] > 0 else 0
            report += f"{proxy}: {stats['requests']} अनुरोध, {stats['errors']} त्रुटियाँ ({error_rate:.1f}%)\n"
        return report
    

सही तरीके से प्रॉक्सी का उपयोग करके, आप Discord बॉट्स के लिए स्वचालन और मॉडरेशन कार्यों को प्रभावी ढंग से प्रबंधित कर सकते हैं। उचित प्रॉक्सी सेटअप और निगरानी के साथ, आप बैन से बच सकते हैं और अपने बॉट्स की स्थिरता और प्रदर्शन को बनाए रख सकते हैं।

```