Come sviluppare un bot IRC

Se sei stato su Internet Relay Chat (IRC), è probabile che tu abbia incontrato un bot ad un certo punto. I bot sono programmi o script indipendenti che si connettono a una rete nello stesso modo in cui farebbe un essere umano. Possono essere programmati per rispondere ai comandi dell'utente o anche per chattare. In questa guida, puoi scoprire quali sono le tue opzioni per costruire un bot IRC e come crearne uno da zero.



Metodo uno di 2: Opzioni di valutazione

  1. uno Considera l'installazione di uno script client. A volte vuoi solo svolgere un compito semplice e non vuoi che sia un programma indipendente. In tal caso, puoi allegare uno script a un client IRC. Questo è abbastanza comune da fare con mIRC , che ha un robusto motore di scripting e un'ampia varietà di script disponibili. Questa è l'opzione più semplice e altamente raccomandata se non hai molta o nessuna esperienza di programmazione. Per il resto di questa guida, le istruzioni richiedono una certa conoscenza della programmazione del computer da seguire.
  2. 2 Considera una base di codice preesistente per il tuo bot. Esistono molti programmi open source e gratuiti che possono aiutarti a configurare rapidamente il tuo bot personalizzato. Uno di questi esempi è Eggdrop , il bot IRC più vecchio ancora in manutenzione.
  3. 3 Considera l'idea di scrivere il tuo bot. Per utenti IRC avanzati e sviluppatori che già conoscono un linguaggio di programmazione, questa è un'ottima opzione. Puoi usare praticamente qualsiasi linguaggio che desideri purché abbia il supporto per socket, ma quelli popolari da usare includono Python, Lua, PHP, C e Perl. Se non conosci nessuno di questi ma conosci un'altra lingua, non è un problema. Di solito puoi trovare esempi sul Web in qualsiasi lingua desideri. Per questo articolo, dimostreremo l'utilizzo di PHP. Per utilizzare PHP, devi avere PHP-CLI installato sul tuo computer o server.
    • PHP può essere scaricato da php.net
    • Gli script PHP possono essere eseguiti dalla riga di comando. Per ulteriori informazioni e assistenza sull'uso di PHP, vedere questa pagina di manuale PHP .
    Annuncio pubblicitario

Metodo 2 di 2: Sviluppare il tuo bot

  1. uno Raccogli i dettagli della connessione. Avrai bisogno delle seguenti informazioni per connetterti correttamente alla rete.
    • server : Il nome di dominio del server utilizzato per connettersi a IRC, come chat.freenode.net
    • Porta : Nella maggior parte dei casi, questo è 6667, ma se non sei sicuro, controlla il tuo client IRC o il sito web della rete.
    • Soprannome : Il nickname che il tuo bot dovrebbe usare. Tieni presente che alcuni caratteri speciali di solito non sono consentiti (@ #! ~).
    • Ident : Il campo ident appare dopo il nickname quando qualcuno esegue un WHOIS come questo: nickname!ident@hostname
    • GECOS : Questo campo contiene in genere il nome reale di un utente o una descrizione generale del bot, ma puoi inserire quello che vuoi.
    • Canale : Di solito vuoi che il tuo bot sia presente in uno o più canali. Sulla maggior parte delle reti, questi sono preceduti da '#' ma potrebbe essere qualcos'altro.
  2. 2 Inizializza la configurazione nel tuo script. Il modo più semplice per farlo è nominare alcune variabili in base ai nomi di configurazione sopra. Potresti anche archiviarli in un file di configurazione e analizzarli, ma per ora ci limiteremo alle necessità assolute.
  3. 3 Connettiti alla rete. Per fare ciò, dovrai aprire un socket per il server sulla porta specificata. Dovresti anche aggiungere del codice di gestione degli errori in questa parte nel caso in cui la connessione fallisca per qualsiasi motivo. In questo caso, PHP ci fornisce alcune funzioni per gestire efficacemente l'errore.
  4. 4 Registra il tuo bot. Ciò significa fornire il tuo nickname, identità e GECOS al server, non registrarsi con NickServ. Per fare ciò, basta scrivere i comandi NICK e USER sul server, seguiti da un ritorno a capo e una nuova riga. È imperativo che lo faccia esattamente come mostrato, perché è così che è specificato in RFC1459, la specifica per il protocollo IRC.
    • Notare che i due parametri centrali (in questo caso, * e 8) devono essere specificati, ma vengono ignorati dal server. Questi due vengono utilizzati solo tra server collegati, non da un client che si connette direttamente.
  5. 5 Continua a recuperare i dati dal socket utilizzando un loop. Se non si utilizza un ciclo, lo script si interromperà immediatamente e il bot sarebbe praticamente inutile. Per rimanere connesso, devi recuperare i dati dal server, controllare qualsiasi input nel flusso che desideri e rispondere se è così. Qui, stiamo acquisendo dati utilizzando socket_read () per acquisire tutti i dati disponibili per noi. Se c'è, continuiamo a fare tutto ciò che è nel ciclo. Potrebbe essere utile anche inviare i dati grezzi alla console in modo da poter vedere cosa sta succedendo dalla prospettiva del bot.
  6. 6 Scrivi un gestore ping. Questo è importante. Se non rispondi ai ping in modo tempestivo, il server ti disconnetterà. Prendiamoci cura prima di tutto. I ping hanno questo aspetto quando vengono inviati dal server: PING :rajaniemi.freenode.net. Il server non deve mettere il suo nome dopo ':', può fornire quello che vuole. * Devi * ripetere esattamente quello che ha detto il server, tranne che usando PONG.
  7. 7 Unisciti ai tuoi canali. Ok, quindi abbiamo un bot che si connette alla rete e risponde ai ping, ma per il resto non fa nulla. Affinché le persone possano vedere e utilizzare il tuo bot, dovrebbe essere in un canale (altrimenti dovresti dirgli di rispondere ai messaggi privati).
    • Per fare ciò, controlleremo i codici di stato del server 376 o 422. 376 significa che il MOTD (messaggio del giorno) è terminato. 422 significa che non c'era alcun MOTD da inviare. Quel MOTD è solo qualcosa che il server invia quando ti connetti, ma è un buon indicatore per quando possiamo iniziare a unirti ai canali.
    • Dovrai emettere un comando JOIN. Questo comando può essere seguito da uno o più canali separati da una virgola.
    • Si noti che i dati inviati dal server sono opportunamente delimitati da spazi. In questo modo possiamo dividere i dati e referenziarli usando un indice di matrice.
  8. 8 Rispondi ai messaggi del canale. Adesso per la parte divertente. Il tuo bot si è unito al canale, quindi ora puoi usarlo per quello che volevi. Creiamo un comando di esempio chiamato @moo.
    • Nota l'offset in cui iniziano i messaggi (questo vale sia per i canali che per i messaggi privati). È sempre nello stesso posto.
    • È possibile gestire i comandi con spazi al loro interno unendo nuovamente i dati raggruppati ($ d). Questo va oltre lo scopo di questo articolo.
    • Se l'obiettivo è un canale (come # botters-test), allora rispondi. Se è un messaggio privato, questo bit sarà il nickname del tuo bot! Devi quindi rispondere utilizzando il soprannome del mittente, non il tuo (altrimenti parleresti da solo, e questo è semplicemente stupido).
  9. 9 Estendi il tuo bot. Puoi aggiungere molte nuove funzionalità utilizzando l'implementazione di cui sopra. Ci sono molti altri comandi che possono essere impartiti alla rete IRC, come la gestione delle operazioni, kicking e ban, l'impostazione dell'argomento, tra molte altre funzionalità. Annuncio pubblicitario

Domande e risposte della comunità

Ricerca Aggiungi nuova domanda
  • Domanda Dopo averli aggiunti in Blocco note +, dove aggiungo questi codici? volare 8lack Mettili su un server web (come Apache) che supporta PHP. Puoi installare XXAMP sul tuo computer locale o ospitarli su un altro server web.
Fai una domanda 200 caratteri rimasti Includi il tuo indirizzo email per ricevere un messaggio quando viene data risposta a questa domanda. Invia
Annuncio pubblicitario

Suggerimenti

  • Puoi produrre il risultato del comando '/ me' anteponendo i tuoi messaggi in questo modo:
    • PRIVMSG #channel: 001ACTION testo qui 001 .
    • 001 significa carattere ASCII 1 e verrà interpretato come tale in una stringa PHP tra virgolette doppie. In alternativa, puoi usare chr(1) al di fuori della stringa.
  • I colori possono essere prodotti in un messaggio anteponendo ' 003' (codice ASCII 3) seguito da un numero per un colore. 0 = bianco, 1 = nero, 2 = blu, 3 = verde, 4 = rosso [...]. Vedere mIRC pagina di per più colori.
  • Per cortesia, ottieni il consenso dei proprietari dei canali e degli operatori IRC prima di portare online il tuo bot. Non tutte le reti e i canali hanno una politica di benvenuto nei confronti dei bot, anche quelli ben educati.
  • Alcuni demoni IRC vanno oltre le specifiche del protocollo e implementano altre funzionalità. Se lo stai adattando per una rete specifica, puoi sicuramente utilizzare queste funzionalità se conosci il loro protocollo. Se desideri che il tuo bot venga distribuito su più reti, tuttavia, prova a mantenerlo in base a quanto riportato nella RFC.

Pubblicità Invia un suggerimento Tutti i suggerimenti inviati vengono esaminati attentamente prima di essere pubblicati Grazie per aver inviato un suggerimento per la revisione!

Questioni Popolari

La Rivalry Week è in testa all'Iron Bowl tra Alabama e Auburn sabato. Ecco come guardare il gioco online senza cavo.

Il processo di ordinazione per gli eventi pay-per-view UFC è leggermente diverso ora. Ecco come guardare gli eventi UFC PPV tramite ESPN Plus.

Ecco come guardare il nuovo reality show della HBO 'Siamo qui' online se non hai il cavo.

Gli studi dimostrano che, se usati correttamente nelle giuste circostanze, i lacci emostatici possono aiutare a controllare il sanguinamento e salvare vite. Http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2660095/ Un laccio emostatico non è un trattamento a lungo termine , ma se qualcuno è ...