Ja esat bijis interneta pārraides tērzēšanā (IRC), iespējams, kādā brīdī esat saskāries ar robotu. Boti ir neatkarīgas programmas vai skripti, kas savienojas ar tīklu tāpat kā to darītu cilvēks. Tos var ieprogrammēt, lai reaģētu uz lietotāja komandām vai pat tērzētu. Šajā ceļvedī jūs varat uzzināt, kādas ir jūsu iespējas izveidot IRC botu, kā arī to, kā to izveidot no jauna.
Soļi
Metode viens no 2: Opciju novērtēšana
- viens Apsveriet klienta skripta instalēšanu. Dažreiz jūs vienkārši vēlaties veikt vienkāršu uzdevumu un nevēlaties, lai tā būtu neatkarīga programma. Tādā gadījumā IRC klientam varat pievienot skriptu. Tas ir diezgan izplatīts mIRC , kurai ir spēcīgs skriptu dzinējs un plašs pieejamo skriptu klāsts. Šī ir vienkāršākā iespēja un ļoti ieteicama, ja jums nav daudz vai vispār nav programmēšanas pieredzes. Pārējā šīs rokasgrāmatas instrukcijās ir jāievēro dažas zināšanas par datorprogrammēšanu.
- 2 Apsveriet jau esoša robota koda bāzi. Pastāv daudzas atvērtā koda un bezmaksas programmas, kas var palīdzēt ātri izveidot savu pielāgoto robotu. Viens šāds piemērs ir Eggdrop , vecākais IRC robots, kas joprojām tiek uzturēts.
- 3 Apsveriet iespēju uzrakstīt savu robotu. Progresīviem IRC lietotājiem un izstrādātājiem, kuri jau zina savu ceļu ap programmēšanas valodu, šī ir lieliska iespēja. Jūs varat izmantot diezgan daudz jebkuru vēlamo valodu, ja vien tai ir ligzdas atbalsts, taču populārākajās valodās ietilpst Python, Lua, PHP, C un Perl. Ja jūs nezināt nevienu no šiem, bet zināt citu valodu, tā nav problēma. Parasti tīmeklī varat atrast piemērus jebkurā vēlamajā valodā. Šajā rakstā mēs parādīsim, izmantojot PHP. Lai izmantotu PHP, datorā vai serverī jābūt instalētai PHP-CLI.
- PHP var lejupielādēt no php.net
- PHP skriptus var izpildīt no komandrindas. Papildinformāciju un palīdzību, izmantojot PHP, skatiet šo PHP rokasgrāmatas lapu .
Metode 2 no 2: Attīstīt savu bot
- viens Apkopojiet savienojuma detaļas. Lai veiksmīgi izveidotu savienojumu ar tīklu, jums jāsaņem šāda informācija.
- Serveris : Servera domēna nosaukums, ko izmanto, lai izveidotu savienojumu ar IRC, piemēram,
chat.freenode.net
- Osta : Vairumā gadījumu tas ir 6667, taču, ja neesat pārliecināts, pārbaudiet savu IRC klientu vai tīkla vietni.
- Segvārds : Segvārds, kas botam jāizmanto. Paturiet prātā, ka dažas īpašās rakstzīmes parasti nav atļautas (@ #! ~).
- Ident : Identifikācijas lauks parādās pēc segvārda, kad kāds veic šādu WHOIS:
nickname!ident@hostname
- GECOS : Šajā laukā parasti ir lietotāja īstais vārds vai vispārīgs robota apraksts, taču tur varat ievietot visu, ko vēlaties.
- Kanāls : Jūs parasti vēlaties, lai jūsu robots atrastos vienā vai vairākos kanālos. Lielākajā daļā tīklu tie tiek pievienoti ar “#”, bet tas var būt kaut kas cits.
- Serveris : Servera domēna nosaukums, ko izmanto, lai izveidotu savienojumu ar IRC, piemēram,
- 2 Inicializējiet konfigurāciju skriptā. Pats vienkāršākais veids, kā to izdarīt, ir nosaukt dažus mainīgos atbilstoši iepriekš minētajiem konfigurācijas nosaukumiem. Jūs tos varat arī saglabāt konfigurācijas failā un parsēt, taču šobrīd mēs vienkārši ievērosim absolūtās nepieciešamības.
- 3 Izveidojiet savienojumu ar tīklu. Lai to izdarītu, jums būs jāatver ligzda serverim norādītajā ostā. Šajā daļā ir jāpievieno arī kļūdu apstrādes kods, ja savienojums kāda iemesla dēļ neizdodas. Šajā gadījumā PHP mums nodrošina dažas kārtīgas funkcijas, lai efektīvi novērstu kļūdu.
- 4 Reģistrējiet savu robotu. Tas nozīmē jūsu segvārda, identifikācijas un GECOS piegādi serverim, nē reģistrējoties pie NickServ. Lai to izdarītu, vienkārši ierakstiet serverī komandas NICK un USER, kam seko karietes atgriešanās un jauna rinda. Tas ir obligāti jādara tieši tā, kā parādīts, jo tas ir norādīts RFC1459, IRC protokola specifikācijā.
- Ņemiet vērā, ka ir jānorāda divi vidējie parametri (šajā gadījumā * un 8), taču serveris tos neņem vērā. Šie divi tiek izmantoti tikai starp saistītajiem serveriem, nevis tieši savienojošais klients.
- 5 Turpiniet iegūt datus no kontaktligzdas, izmantojot cilpu. Ja jūs neizmantotu cilpu, jūsu skripts nekavējoties tiktu pārtraukts, un robots būtībā būtu bezjēdzīgs. Lai uzturētu savienojumu, jums ir jāiegūst dati no servera, jāpārbauda, vai straumē nav ievades, un jāreaģē, ja jā. Šeit mēs satveram datus, izmantojot socket_read (), lai paņemtu visus pieejamos datus. Ja tā ir, mēs turpinām darīt visu, kas ir cilpā. Var būt noderīgi neapstrādātus datus izvadīt arī uz konsoli, lai jūs varētu redzēt, kas notiek no robota viedokļa.
- 6 Uzrakstiet ping apstrādātāju. Tas ir svarīgi. Ja jūs nereaģējat uz pingiem savlaicīgi, serveris jūs atvienos. Vispirms parūpēsimies par to. Pingi izskatās šādi, kad tiek sūtīti no servera:
PING :rajaniemi.freenode.net
. Serverim nav jāievada nosaukums aiz “:”, tas var piegādāt visu, ko vēlas. Jums * ir * jāatkārto precīzi servera teiktais, izņemot PONG izmantošanu. - 7 Pievienojieties saviem kanāliem. Labi, tāpēc mums ir robots, kas izveido savienojumu ar tīklu un reaģē uz pingiem, bet citādi neko nedara. Lai cilvēki varētu redzēt un izmantot jūsu robotu, tam jābūt kanālā (pretējā gadījumā jums tas jāpasaka, lai atbildētu uz privātajiem ziņojumiem).
- Lai to izdarītu, mēs pārbaudīsim servera statusa kodus 376 vai 422. 376 nozīmē, ka MOTD (dienas ziņojums) ir pabeigts. 422 nozīmē, ka nebija neviena MOTD, ko nosūtīt. Tas, ka MOTD ir tikai tas, ko serveris nosūta, kad izveidojat savienojumu, bet tas ir labs indikators, kad mēs varam sākt pievienoties kanāliem.
- Jums būs jāizdod JOIN komanda. Šai komandai var sekot viens vai vairāki kanāli, kas atdalīti ar komatu.
- Ievērojiet, ka servera sūtītie dati ir ērti norobežoti ar atstarpēm. Tādā veidā mēs varam sadalīt datus un atsaukties uz tiem, izmantojot masīva indeksu.
- 8 Atbildiet uz kanāla ziņojumiem. Tagad par jautrāko daļu. Jūsu robots ir pievienojies kanālam, tāpēc tagad to varat izmantot sev vēlamajam. Izveidosim komandas piemēru ar nosaukumu @moo.
- Ievērojiet nobīdi, kur sākas ziņojumi (tas attiecas gan uz kanāliem, gan uz privātajiem ziņojumiem). Tas vienmēr atrodas vienā un tajā pašā vietā.
- Jūs varat rīkoties ar komandām, kurās ir atstarpes, savienojot sakopotos datus kopā ($ d). Tas pārsniedz šī raksta darbības jomu.
- Ja mērķis ir kanāls (piemēram, # botters-test), tad jūs uz to atbildat. Ja tas ir privāts ziņojums, šis bits būs jūsu robota segvārds! Pēc tam jums jāatbild, izmantojot sūtītāja segvārdu, nevis savu (pretējā gadījumā jūs runātu ar sevi, un tas ir vienkārši dumjš).
- 9 Paplašiniet robotu. Izmantojot iepriekš minēto ieviešanu, varat pievienot daudzas jaunas funkcijas. Ir daudzas citas komandas, kuras var izsniegt IRC tīklam, piemēram, opciju pārvaldīšana, spārdīšana un aizliegšana, tēmas iestatīšana starp daudzām citām funkcijām. Reklāma
Sabiedrības jautājumi un atbildes
Meklēt Pievienot jaunu jautājumu- Jautājums Pēc tam, kad es tos pievienoju notepad +, kur es varu pievienot šos kodus? lido 8lack Ievietojiet tos tīmekļa serverī (piemēram, Apache), kas atbalsta PHP. Jūs varat instalēt XXAMP savā lokālajā datorā vai mitināt tos citā tīmekļa serverī.
Reklāma
Padomi
- Komandas '/ me' rezultātu var iegūt, prefiksus ievietojot šādi:
- PRIVMSG #kanāls: teksts šeit 001 .
- 001 nozīmē ASCII 1. rakstzīmi un tiks interpretēts kā tāds divreiz citētā PHP virknē. Varat arī izmantot
chr(1)
ārpus virknes.
- Krāsas var izveidot ziņojumā, pievienojot prefiksu “ 003” (ASCII kods 3), kam seko krāsas numurs. 0 = balts, 1 = melns, 2 = zils, 3 = zaļš, 4 = sarkans [...]. Skat mIRC lapā, lai iegūtu vairāk krāsu.
- Pieklājības labad pirms robota ievietošanas tiešsaistē saņemiet kanālu īpašnieku un IRC operatoru piekrišanu. Ne visos tīklos un kanālos ir laipna politika attiecībā uz robotiem, pat labi izturētiem.
- Daži IRC dēmoni pārsniedz protokola specifikācijas un ievieš citas funkcijas. Ja to izmantojat konkrētam tīklam, jūs noteikti varat izmantot šīs funkcijas, ja zināt par to protokolu. Tomēr, ja vēlaties, lai robots tiktu izvietots vairākos tīklos, mēģiniet to turēt RFC.
Reklāma Iesniedziet padomu Visi padomu iesniegumi pirms publicēšanas tiek rūpīgi izskatīti. Paldies, ka iesniedzāt padomu pārskatīšanai!