Come sviluppare un bot IRC: 12 passaggi (con immagini)

Sommario:

Come sviluppare un bot IRC: 12 passaggi (con immagini)
Come sviluppare un bot IRC: 12 passaggi (con immagini)

Video: Come sviluppare un bot IRC: 12 passaggi (con immagini)

Video: Come sviluppare un bot IRC: 12 passaggi (con immagini)
Video: Come configurare la tua email su un iPhone 2024, Marzo
Anonim

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 collegano a una rete nello stesso modo in cui lo farebbe un essere umano. Possono essere programmati per rispondere ai comandi dell'utente o persino per chattare. In questa guida, puoi trovare quali sono le tue opzioni per creare un bot IRC e come crearne uno da zero.

Passi

Metodo 1 di 2: valutazione delle opzioni

Sviluppa un Bot IRC Passaggio 1
Sviluppa un Bot IRC Passaggio 1

Passaggio 1. Considerare 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 consigliata 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.

Sviluppa un Bot IRC Passaggio 2
Sviluppa un Bot IRC Passaggio 2

Passaggio 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. Un esempio è Eggdrop, il più vecchio bot IRC ancora mantenuto.

Sviluppa un Bot IRC Passaggio 3
Sviluppa un Bot IRC Passaggio 3

Passaggio 3. Considera la possibilità di scrivere il tuo bot

Per gli utenti e gli sviluppatori IRC avanzati che conoscono già un linguaggio di programmazione, questa è un'ottima opzione. Puoi usare praticamente qualsiasi lingua tu voglia purché abbia il supporto per i socket, ma quelli più 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 tu voglia. 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 aiuto sull'utilizzo di PHP, vedere questa pagina del manuale di PHP.

Metodo 2 di 2: sviluppo del proprio bot

Sviluppa un Bot IRC Passaggio 4
Sviluppa un Bot IRC Passaggio 4

Passaggio 1. Raccogliere i dettagli della connessione

Dovrai ottenere le seguenti informazioni per connetterti correttamente alla rete.

  • server: il nome di dominio del server utilizzato per connettersi a IRC, ad esempio

    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 soprannome che il tuo bot dovrebbe usare. Tieni presente che alcuni caratteri speciali di solito non sono consentiti (@#!~).
  • Identità: Il campo ident appare dopo il nickname quando qualcuno esegue un WHOIS in questo modo:

    soprannome!ident@nomehost

  • GECOSO: questo campo in genere contiene il vero nome di un utente o una descrizione generale del bot, ma puoi inserire quello che vuoi.
  • Canale: Solitamente desideri 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.
Sviluppa un Bot IRC Passaggio 5
Sviluppa un Bot IRC Passaggio 5

Passaggio 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 memorizzarli in un file di configurazione e analizzarli, ma per ora ci limiteremo solo alle necessità assolute.

Sviluppa un Bot IRC Passaggio 6
Sviluppa un Bot IRC Passaggio 6

Passaggio 3. Connettersi alla rete

Per fare ciò, dovrai aprire un socket sul server sulla porta specificata. Dovresti anche aggiungere del codice di gestione degli errori in questa parte nel caso in cui la connessione non riesca per qualsiasi motivo. In questo caso, PHP ci fornisce alcune funzioni ordinate per gestire l'errore in modo efficace.

Sviluppa un Bot IRC Passaggio 7
Sviluppa un Bot IRC Passaggio 7

Passaggio 4. Registra il tuo bot

Ciò significa fornire il tuo nickname, ident e GECOS al server, non registrarti con NickServ. Per fare ciò, basta scrivere sul server i comandi NICK e USER, seguiti da un ritorno a capo e una nuova riga. È imperativo che tu lo faccia esattamente come mostrato, perché è così che è specificato in RFC1459, la specifica per il protocollo IRC.

Nota 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

Sviluppa un Bot IRC Passaggio 8
Sviluppa un Bot IRC Passaggio 8

Passaggio 5. Continua a recuperare i dati dal socket utilizzando un ciclo

Se non avessi usato un ciclo, il tuo script sarebbe terminato immediatamente e il bot sarebbe stato praticamente inutile. Per rimanere connesso, devi recuperare i dati dal server, controllare qualsiasi input nel flusso che desideri e rispondere in tal caso. Qui, stiamo catturando i dati usando socket_read() per prendere 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 dal punto di vista del bot.

Sviluppa un Bot IRC Passaggio 9
Sviluppa un Bot IRC Passaggio 9

Passaggio 6. Scrivi un gestore di ping

Questo è importante. Se non rispondi ai ping in modo tempestivo, il server ti disconnetterà. Prendiamoci cura di questo prima. I ping hanno questo aspetto quando vengono inviati dal server:

PING: rajaniemi.freenode.net

. Il server non deve mettere il suo nome dopo il ':', può fornire quello che vuole. *Devi* ripetere esattamente ciò che ha detto il server, eccetto l'utilizzo di PONG.

Sviluppa un Bot IRC Passaggio 10
Sviluppa un Bot IRC Passaggio 10

Passaggio 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 trovarsi 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 nessun MOTD da inviare. Quel MOTD è solo qualcosa che il server invia quando ti connetti, ma è un buon indicatore per quando possiamo iniziare a unirci 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 farvi riferimento utilizzando un indice di array.
Sviluppa un Bot IRC Passaggio 11
Sviluppa un Bot IRC Passaggio 11

Passaggio 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.
  • Puoi gestire i comandi con spazi al loro interno unendo i dati in blocchi di nuovo insieme ($d). Questo va oltre lo scopo di questo articolo.
  • Se l'obiettivo è un canale (come #botters-test), allora rispondi a quello. Se è un messaggio privato, questo bit sarà il nickname del tuo bot! Devi quindi rispondere usando il nickname del mittente, non il tuo (altrimenti parleresti da solo, e questo è semplicemente sciocco).
Sviluppa un Bot IRC Passaggio 12
Sviluppa un Bot IRC Passaggio 12

Passaggio 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, il kicking e il ban, l'impostazione dell'argomento, tra molte altre caratteristiche.

Suggerimenti

  • Puoi produrre il risultato del comando "/me" anteponendo i tuoi messaggi in questo modo:

    • PRIVMSG #canale:\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 […]. Vedi la pagina di mIRC per altri colori.
  • Per cortesia, ottieni il consenso dei proprietari dei canali e degli operatori IRC prima di portare il tuo bot online. 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 orientando per una rete specifica, puoi sicuramente utilizzare queste funzionalità se conosci il loro protocollo. Se vuoi che il tuo bot venga distribuito su più reti, tuttavia, prova a mantenerlo su ciò che è nella RFC.

Consigliato: