Kā izveidot IRC robotu: 12 soļi (ar attēliem)

Satura rādītājs:

Kā izveidot IRC robotu: 12 soļi (ar attēliem)
Kā izveidot IRC robotu: 12 soļi (ar attēliem)

Video: Kā izveidot IRC robotu: 12 soļi (ar attēliem)

Video: Kā izveidot IRC robotu: 12 soļi (ar attēliem)
Video: REMONTS KURAS NĒ PAMETĪS INDIVIDUĀLS VISIEM Garant-Remonts. Apdare darbs iekšā Bresta 2024, Marts
Anonim

Ja esat izmantojis interneta releja tērzēšanu (IRC), iespējams, ka kādā brīdī esat saskāries ar robotu. Boti ir neatkarīgas programmas vai skripti, kas savienojas ar tīklu tādā pašā veidā kā cilvēks. Tos var ieprogrammēt, lai reaģētu uz lietotāju komandām vai pat tērzētu. Šajā rokasgrāmatā varat uzzināt, kādas ir jūsu iespējas IRC robota izveidei, kā arī to, kā to izveidot no jauna.

Soļi

1. metode no 2: iespēju novērtēšana

Izstrādājiet IRC robotu 1. darbība
Izstrādājiet IRC robotu 1. darbība

1. solis. Apsveriet klienta skripta instalēšanu

Dažreiz jūs vienkārši vēlaties paveikt vienkāršu uzdevumu un nevēlaties, lai tā būtu neatkarīga programma. Tādā gadījumā varat pievienot skriptu IRC klientam. Tas ir diezgan bieži darāms ar mIRC, kam 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 pieredzes vai programmēšanas pieredzes. Pārējās šīs rokasgrāmatas instrukcijās ir jāievēro dažas zināšanas par datorprogrammēšanu.

Izstrādājiet IRC robotu 2. solis
Izstrādājiet IRC robotu 2. solis

2. solis. Apsveriet jau esošu sava robota koda bāzi

Pastāv daudzas atvērtā pirmkoda un bezmaksas programmas, kas var palīdzēt ātri izveidot savu pielāgoto robotu. Viens no šādiem piemēriem ir Eggdrop, vecākais IRC robots, kas joprojām tiek uzturēts.

Izstrādājiet IRC robotu 3. solis
Izstrādājiet IRC robotu 3. solis

Solis 3. Apsveriet iespēju uzrakstīt savu robotu

Pieredzējušiem IRC lietotājiem un izstrādātājiem, kuri jau zina savu programmēšanas valodu, šī ir lieliska iespēja. Jūs varat izmantot gandrīz jebkuru vēlamo valodu, ja vien tai ir ligzdas atbalsts, taču populārākās ir Python, Lua, PHP, C un Perl. Ja jūs nezināt nevienu no šiem, bet jūs 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, kā izmantot 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 PHP lietošanā skatiet šajā PHP rokasgrāmatas lapā.

2. metode no 2: sava robota izstrāde

Izstrādājiet IRC robotu 4. solis
Izstrādājiet IRC robotu 4. solis

Solis 1. Apkopojiet savienojuma detaļas

Lai veiksmīgi izveidotu savienojumu ar tīklu, jums būs jāiegūst šā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, bet, ja neesat pārliecināts, pārbaudiet savu IRC klientu vai tīkla vietni.
  • Segvārds: Segvārds, kas jāizmanto jūsu robotam. Ņemiet vērā, ka dažas speciālās rakstzīmes parasti nav atļautas (@#! ~).
  • Ident: Identitātes lauks parādās aiz segvārda, kad kāds veic šādu WHOIS:

    segvārds! ident@saimniekdatora vārds

  • GECOS: Šajā laukā parasti ir lietotāja īstais vārds vai vispārīgs robota apraksts, bet jūs varat ievietot tajā visu, ko vēlaties.
  • Kanāls: Jūs parasti vēlaties, lai jūsu robots būtu pieejams vienā vai vairākos kanālos. Lielākajā daļā tīklu tie ir pievienoti ar “#”, bet tas var būt kaut kas cits.
Izstrādājiet IRC robotu 5. solis
Izstrādājiet IRC robotu 5. solis

2. solis. Inicializējiet skripta konfigurāciju

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 varētu arī saglabāt konfigurācijas failā un parsēt, taču šobrīd mēs vienkārši pieturēsimies pie absolūtajām vajadzībām.

Izstrādājiet IRC bot 6. darbību
Izstrādājiet IRC bot 6. darbību

3. solis. Pievienojieties tīklam

Lai to izdarītu, jums ir jāatver ligzda serverim norādītajā portā. Šajā gadījumā jums jāpievieno arī kļūdu apstrādes kods, ja savienojums kāda iemesla dēļ neizdodas. Šajā gadījumā PHP nodrošina dažas glītas funkcijas, lai efektīvi tiktu galā ar kļūdu.

Izstrādājiet IRC Bot 7. darbību
Izstrādājiet IRC Bot 7. darbību

4. solis. Reģistrējiet savu robotu

Tas nozīmē piegādāt serverim savu segvārdu, identitāti un GECOS, nevis reģistrēties NickServ. Lai to izdarītu, vienkārši ierakstiet serverī komandas NICK un USER, kam seko vagonu atgriešana un jauna rinda. Tas ir obligāti jādara tieši tā, kā parādīts attēlā, jo tas ir norādīts RFC1459, IRC protokola specifikācijā.

Ņemiet vērā, ka divi vidējie parametri (šajā gadījumā * un 8) ir jānorāda, bet serveris tos ignorē. Šos divus izmanto tikai starp saistītajiem serveriem, nevis tieši savienojošs klients

Izstrādājiet IRC robotu 8. solis
Izstrādājiet IRC robotu 8. solis

5. solis. Turpiniet iegūt datus no kontaktligzdas, izmantojot cilpu

Ja neizmantotu cilpu, jūsu skripts nekavējoties tiktu pārtraukts, un robots būtībā būtu bezjēdzīgs. Lai saglabātu savienojumu, jums ir jāiegūst dati no servera, jāpārbauda, vai vēlamajā straumē nav ievades, un, ja jā, uz to jāatbild. Šeit mēs iegūstam datus, izmantojot socket_read (), lai iegūtu mums pieejamos datus. Ja ir, mēs turpinām darīt visu, kas ir kontā. Varētu būt noderīgi arī izejas datus izvadīt konsolē, lai jūs varētu redzēt, kas notiek no robota viedokļa.

Izstrādājiet IRC robotu 9. solis
Izstrādājiet IRC robotu 9. solis

6. solis. Uzrakstiet ping apstrādātāju

Tas ir svarīgi. Ja jūs savlaicīgi neatbildat uz pingiem, serveris jūs atvienos. Vispirms parūpēsimies par to. Sūtot no servera, ping izskatās šādi:

PING: rajaniemi.freenode.net

. Serverim nav jānorāda nosaukums aiz “:”, tas var piegādāt visu, ko vēlas. Jums * jāatkārto tieši tas, ko teica serveris, izņemot PONG izmantošanu.

Izstrādājiet IRC robotu 10. solis
Izstrādājiet IRC robotu 10. solis

7. solis. 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 redzētu un izmantotu jūsu robotu, tam jābūt kanālā (pretējā gadījumā jums tas jāpasaka, lai atbildētu uz privātiem 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 jānosūta MOTD. Šis MOTD ir tikai tas, ko serveris nosūta, kad izveidojat savienojumu, taču tas ir labs rādītājs tam, kad 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.
  • Ņemiet vērā, ka servera nosū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.
Izstrādājiet IRC robotu 11. solis
Izstrādājiet IRC robotu 11. solis

8. solis. Atbildiet uz kanāla ziņojumiem

Tagad par jautro daļu. Jūsu robots pievienojās kanālam, tāpēc tagad varat to izmantot tam, ko vēlaties. Izveidosim komandas piemēru ar nosaukumu @moo.

  • Ņemiet vērā nobīdi, kurā sākas ziņas (tas attiecas gan uz kanāliem, gan uz privātajām ziņām). Tas vienmēr atrodas tajā pašā vietā.
  • Jūs varat rīkoties ar komandām ar atstarpēm, saliekot kopā sagrieztos datus ($ d). Tas ir ārpus šī raksta darbības jomas.
  • Ja mērķis ir kanāls (piemēram, #botters-test), tad jūs uz to atbildat. Ja tā ir privāta ziņa, šis bits būs jūsu robota segvārds! Pēc tam jums jāatbild, izmantojot sūtītāja segvārdu, nevis jūsu (pretējā gadījumā jūs runājat ar sevi, un tas ir vienkārši muļķīgi).
Izstrādājiet IRC robotu 12. solis
Izstrādājiet IRC robotu 12. solis

9. solis. Paplašiniet savu robotu

Izmantojot iepriekš minēto ieviešanu, varat pievienot daudzas jaunas funkcijas. Ir daudzas citas komandas, kuras var izdot IRC tīklam, piemēram, opciju pārvaldīšana, speršana un aizliegšana, tēmas iestatīšana starp daudzām citām funkcijām.

Padomi

  • Komandas "/me" rezultātu var iegūt, iepriekš pievienojot savus ziņojumus šādi:

    • PRIVMSG #kanāls: / 001ACTION teksts šeit / 001.
    • 001 nozīmē ASCII rakstzīmi 1, un tā kā tāda tiks interpretēta dubultās pēdiņas PHP virknē. Alternatīvi, jūs varat izmantot

      chr (1)

    • ārpus stīgas.
  • Krāsas var izveidot ziņojumā, pievienojot priedēkli "\ 003" (ASCII kods 3), kam seko krāsas numurs. 0 = balts, 1 = melns, 2 = zils, 3 = zaļš, 4 = sarkans […]. Vairāk krāsu skatiet mIRC lapā.
  • Pieklājības labad, pirms robota ievietošanas tiešsaistē, saņemiet kanālu īpašnieku un IRC operatoru piekrišanu. Ne visiem tīkliem un kanāliem ir labvēlīga politika attiecībā uz robotiem, pat labi izturētiem.
  • Daži IRC dēmoni pārsniedz protokola specifikācijas un ievieš citas funkcijas. Ja jūs to pielāgojat konkrētam tīklam, jūs noteikti varat izmantot šīs funkcijas, ja zināt par to protokolu. Tomēr, ja vēlaties, lai jūsu robots tiktu izvietots vairākos tīklos, mēģiniet to saglabāt RFC.

Ieteicams: