Cum să dezvolți un bot IRC: 12 pași (cu imagini)

Cuprins:

Cum să dezvolți un bot IRC: 12 pași (cu imagini)
Cum să dezvolți un bot IRC: 12 pași (cu imagini)

Video: Cum să dezvolți un bot IRC: 12 pași (cu imagini)

Video: Cum să dezvolți un bot IRC: 12 pași (cu imagini)
Video: Cum iți activezi autentificarea în doi pași pe Facebook și sporești securitatea contului 2024, Martie
Anonim

Dacă ați fost pe Internet Relay Chat (IRC), este posibil să fi întâlnit un robot la un moment dat. Roboții sunt programe sau scripturi independente care se conectează la o rețea în același mod ca un om. Pot fi programate pentru a răspunde la comenzile utilizatorului sau chiar pentru chat. În acest ghid, puteți găsi care sunt opțiunile dvs. pentru construirea unui bot IRC, precum și cum să construiți unul de la zero.

Pași

Metoda 1 din 2: Evaluarea opțiunilor

Dezvoltați un bot IRC Pasul 1
Dezvoltați un bot IRC Pasul 1

Pasul 1. Luați în considerare instalarea unui script client

Uneori, doriți doar o sarcină simplă și nu doriți să fie un program independent. În acest caz, puteți atașa un script la un client IRC. Acest lucru este destul de obișnuit cu mIRC, care are un motor de scriptare robust și o mare varietate de scripturi disponibile. Aceasta este cea mai ușoară opțiune și foarte recomandată dacă nu aveți prea multă experiență de programare. Pentru restul acestui ghid, instrucțiunile necesită anumite cunoștințe de programare pe computer.

Dezvoltați un bot IRC Pasul 2
Dezvoltați un bot IRC Pasul 2

Pasul 2. Luați în considerare o bază de cod preexistentă pentru botul dvs

Există multe programe open source și gratuite care vă pot ajuta să vă configurați rapid propriul bot personalizat. Un astfel de exemplu este Eggdrop, cel mai vechi bot IRC care este încă întreținut.

Dezvoltați un bot IRC Pasul 3
Dezvoltați un bot IRC Pasul 3

Pasul 3. Luați în considerare scrierea propriului bot

Pentru utilizatorii și dezvoltatorii IRC avansați care își cunosc deja drumul în jurul unui limbaj de programare, aceasta este o opțiune excelentă. Puteți folosi aproape orice limbă doriți, atâta timp cât are suport pentru socket, dar cele mai populare sunt Python, Lua, PHP, C și Perl. Dacă nu cunoașteți niciuna dintre acestea, dar cunoașteți o altă limbă, nu este o problemă. De obicei, puteți găsi exemple pe web în orice limbă doriți. Pentru acest articol, vom demonstra utilizarea PHP. Pentru a utiliza PHP, va trebui să aveți PHP-CLI instalat pe computer sau server.

  • PHP poate fi descărcat de pe php.net
  • Scripturile PHP pot fi executate din linia de comandă. Pentru informații suplimentare și ajutor la utilizarea PHP, consultați această pagină a manualului PHP.

Metoda 2 din 2: Dezvoltarea propriului dvs. bot

Dezvoltați un bot IRC Pasul 4
Dezvoltați un bot IRC Pasul 4

Pasul 1. Adună detaliile conexiunii

Va trebui să obțineți următoarele informații pentru a vă conecta cu succes la rețea.

  • Server: Numele de domeniu al serverului utilizat pentru conectarea la IRC, cum ar fi

    chat.freenode.net

  • Port: În majoritatea cazurilor, acesta este 6667, dar dacă nu sunteți sigur, verificați propriul client IRC sau site-ul web al rețelei.
  • Poreclă: Porecla pe care ar trebui să o folosească botul dvs. Rețineți că unele caractere speciale nu sunt de obicei permise (@ #! ~).
  • Ident: Câmpul de identitate apare după porecla când cineva efectuează un WHOIS ca acesta:

    nickname! ident @ hostname

  • GECOS: Acest câmp deține de obicei numele real al unui utilizator sau o descriere generală a botului, dar puteți pune acolo orice doriți.
  • Canal: De obicei, doriți ca botul dvs. să fie prezent pe unul sau mai multe canale. În majoritatea rețelelor, acestea sunt prefixate cu „#”, dar ar putea fi altceva.
Dezvoltați un bot IRC Pasul 5
Dezvoltați un bot IRC Pasul 5

Pasul 2. Inițializați configurația din script

Cel mai simplu mod de a face acest lucru este prin denumirea câtorva variabile în conformitate cu numele de configurare de mai sus. Puteți, de asemenea, să le stocați într-un fișier de configurare și să le analizați, dar pentru moment vom rămâne doar cu necesitățile absolute.

Dezvoltați un bot IRC Pasul 6
Dezvoltați un bot IRC Pasul 6

Pasul 3. Conectați-vă la rețea

Pentru a face acest lucru, va trebui să deschideți un socket la serverul de pe portul specificat. De asemenea, ar trebui să adăugați un cod de gestionare a erorilor în această parte în cazul în care conexiunea eșuează din orice motiv. În acest caz, PHP ne oferă câteva funcții îngrijite pentru a gestiona eroarea în mod eficient.

Dezvoltați un bot IRC Pasul 7
Dezvoltați un bot IRC Pasul 7

Pasul 4. Înregistrați-vă botul

Acest lucru înseamnă furnizarea poreclei, identității și GECOS către server, neînregistrarea la NickServ. Pentru a face acest lucru, trebuie doar să scrieți comenzile NICK și USER pe server, urmate de o returnare a carului și o linie nouă. Este imperativ să o faceți exact așa cum se arată, deoarece așa este specificat în RFC1459, specificația pentru protocolul IRC.

Rețineți că cei doi parametri din mijloc (în acest caz, * și 8) trebuie specificați, dar aceștia sunt ignorați de server. Cele două sunt utilizate numai între servere conectate, nu de un client care se conectează direct

Dezvoltați un bot IRC Pasul 8
Dezvoltați un bot IRC Pasul 8

Pasul 5. Continuați să preluați date din soclu folosind o buclă

Dacă nu ați utiliza o buclă, scriptul dvs. s-ar termina imediat și botul ar fi practic inutil. Pentru a rămâne conectat, trebuie să preluați date de pe server, să verificați dacă există intrări în fluxul dorit și să răspundeți la acesta, dacă da. Aici, preluăm date folosind socket_read () pentru a prelua orice date disponibile pentru noi. Dacă există, continuăm să facem orice este în buclă. Ar putea fi util să scoateți datele brute în consolă, astfel încât să puteți vedea ce se întâmplă din perspectiva botului.

Dezvoltați un bot IRC Pasul 9
Dezvoltați un bot IRC Pasul 9

Pasul 6. Scrieți un handler ping

Asta e important. Dacă nu răspundeți la pings în timp util, serverul vă va deconecta. Să ne ocupăm mai întâi de asta. Ping-urile arată așa când sunt trimise de pe server:

PING: rajaniemi.freenode.net

. Serverul nu trebuie să-și pună numele după „:”, poate furniza orice dorește. * Trebuie * să repetați exact ceea ce a spus serverul, cu excepția utilizării PONG.

Dezvoltați un IRC Bot Pasul 10
Dezvoltați un IRC Bot Pasul 10

Pasul 7. Alăturați-vă canalelor

Bine, deci avem un bot care se conectează la rețea și răspunde la pings, dar altfel nu face nimic. Pentru ca oamenii să vă vadă și să utilizeze botul, acesta ar trebui să se afle într-un canal (altfel ar trebui să-i spuneți să răspundă la mesajele private).

  • Pentru a face acest lucru, vom verifica codurile de stare ale serverului 376 sau 422. 376 înseamnă că MOTD (mesajul zilei) a fost terminat. 422 înseamnă că nu a fost trimis niciun MOTD. Că MOTD este doar ceva pe care serverul îl trimite când vă conectați, dar este un bun indicator pentru momentul în care putem începe să ne alăturăm canalelor.
  • Va trebui să emiteți o comandă JOIN. Această comandă poate fi urmată de unul sau mai multe canale separate printr-o virgulă.
  • Observați că datele trimise de server sunt delimitate convenabil de spații. În acest fel putem împărți datele și le putem referi folosind un index de matrice.
Dezvoltați un bot IRC Pasul 11
Dezvoltați un bot IRC Pasul 11

Pasul 8. Răspundeți la mesajele canalului

Acum, pentru partea distractivă. Botul dvs. s-a alăturat canalului, așa că acum îl puteți folosi pentru ceea ce ați dorit. Să creăm un exemplu de comandă numit @moo.

  • Rețineți decalajul de unde încep mesajele (acest lucru se aplică atât canalelor, cât și mesajelor private). Este întotdeauna în același loc.
  • Puteți gestiona comenzile cu spații în ele prin îmbinarea datelor blocate ($ d). Acest lucru depășește sfera acestui articol.
  • Dacă ținta este un canal (cum ar fi # botters-test), atunci răspundeți la asta. Dacă este un mesaj privat, acest bit va fi porecla robotului dvs.! Apoi, trebuie să răspundeți folosind porecla expeditorului, nu a dvs. (altfel ați vorbi cu voi înșivă și asta este doar o prostie).
Dezvoltați un bot IRC Pasul 12
Dezvoltați un bot IRC Pasul 12

Pasul 9. Extindeți-vă botul

Puteți adăuga multe funcții noi folosind implementarea de mai sus. Există multe alte comenzi care pot fi emise către rețeaua IRC, cum ar fi gestionarea opsurilor, lovirea și interzicerea, setarea subiectului, printre multe alte caracteristici.

sfaturi

  • Puteți produce rezultatul comenzii „/ me” prefixând mesajele astfel:

    • PRIVMSG #canal: / 001ACTION text aici / 001.
    • 001 înseamnă caracterul ASCII 1 și va fi interpretat ca atare într-un șir PHP citat dublu. Alternativ, puteți utiliza

      chr (1)

    • în afara șirului.
  • Culorile pot fi produse într-un mesaj prin prefixarea „\ 003” (cod ASCII 3) urmată de un număr pentru o culoare. 0 = alb, 1 = negru, 2 = albastru, 3 = verde, 4 = roșu […]. Vedeți pagina mIRC pentru mai multe culori.
  • Din motive de curtoazie, obțineți consimțământul proprietarilor de canale și al operatorilor IRC înainte de a vă lansa botul online. Nu toate rețelele și canalele au o politică binevenită față de roboți, chiar și cu comportamente bune.
  • Unele demonii IRC depășesc specificațiile protocolului și implementează alte caracteristici. Dacă îl pregătiți pentru o anumită rețea, puteți folosi cu siguranță aceste caracteristici dacă știți despre protocolul lor. Cu toate acestea, dacă doriți ca robotul dvs. să fie implementat în mai multe rețele, încercați să îl păstrați la ceea ce este în RFC.

Recomandat: