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. Ele 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
Metodă unu din 2: Opțiuni de evaluare
- unu 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 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 despre programarea computerului.
- 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 Picătură de ou , cel mai vechi bot IRC încă se menține.
- 3 Luați în considerare scrierea propriului robot. 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ă de manual PHP .
Metodă 2 din 2: Dezvoltarea propriului dvs. bot
- unu Adunați 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.
- Server : Numele de domeniu al serverului utilizat pentru conectarea la IRC, cum ar fi
- 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.
- 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.
- 4 Înregistrați-vă botul. Aceasta înseamnă să furnizați porecla, identitatea și GECOS către server, nu î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.
- 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.
- 6 Scrieți un manipulator de 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. - 7 Alătură-te canalelor tale. 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. Astfel putem împărți datele și le putem face referințe folosind un index de matrice.
- 8 Răspundeți la mesajele canalului. Acum, pentru partea distractivă. Bot-ul 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).
- 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. Publicitate
Întrebări și răspunsuri ale comunității
Căutare Adăugați o întrebare nouă- Întrebare După ce le adaug în notepad +, unde adaug aceste coduri? zburând 8lack Puneți-le pe un server web (cum ar fi Apache) care acceptă PHP. Puteți instala XXAMP pe computerul dvs. local sau le puteți găzdui pe alt server web.
Publicitate
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 [...]. Vedea mIRC pagina 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 pe mai multe rețele, încercați să îl păstrați la ceea ce este în RFC.
Publicitate Trimiteți un sfat Toate trimiterile de sfaturi sunt examinate cu atenție înainte de a fi publicate Vă mulțumim că ați trimis un sfat pentru revizuire!