Kako razviti IRC robota: 12 koraka (sa slikama)

Sadržaj:

Kako razviti IRC robota: 12 koraka (sa slikama)
Kako razviti IRC robota: 12 koraka (sa slikama)

Video: Kako razviti IRC robota: 12 koraka (sa slikama)

Video: Kako razviti IRC robota: 12 koraka (sa slikama)
Video: Москва слезам не верит, 1 серия (FullHD, драма, реж. Владимир Меньшов, 1979 г.) 2024, Marš
Anonim

Ako ste bili na Internetskom relejnom chatu (IRC), velike su šanse da ste u nekom trenutku naišli na bota. Botovi su nezavisni programi ili skripte koji se povezuju na mrežu na isti način na koji bi to učinio čovjek. Mogu se programirati da odgovore na korisničke naredbe ili čak razgovaraju. U ovom vodiču možete pronaći koje su vam mogućnosti za izgradnju IRC bota, kao i kako ga izgraditi od nule.

Koraci

Metoda 1 od 2: Procjena mogućnosti

Razvijte IRC Bot korak 1
Razvijte IRC Bot korak 1

Korak 1. Razmislite o instaliranju klijentske skripte

Ponekad samo želite jednostavan zadatak i ne želite da to bude nezavisni program. U tom slučaju možete priložiti skriptu IRC klijentu. To je prilično uobičajeno za rad s mIRC -om, koji ima robustan stroj za skriptiranje i širok raspon dostupnih skripti. Ovo je najjednostavnija opcija i preporučuje se ako nemate mnogo iskustva u programiranju. Za ostatak ovog vodiča, upute zahtijevaju poznavanje računalnog programiranja.

Razvijte IRC Bot Korak 2
Razvijte IRC Bot Korak 2

Korak 2. Razmotrite već postojeću bazu kodova za vašeg bota

Postoji mnogo otvorenih kodova i besplatnih programa koji vam mogu pomoći da brzo postavite vlastiti prilagođeni bot. Jedan od takvih primjera je Eggdrop, najstariji IRC bot koji se još održava.

Razvijte IRC Bot Korak 3
Razvijte IRC Bot Korak 3

Korak 3. Razmislite o pisanju vlastitog bota

Za napredne IRC korisnike i programere koji se već snalaze u programskom jeziku, ovo je odlična opcija. Možete koristiti bilo koji jezik koji želite ako ima podršku za utičnice, ali popularni za korištenje uključuju Python, Lua, PHP, C i Perl. Ako ne znate ništa od ovoga, ali znate neki drugi jezik, to nije problem. Obično možete pronaći primjere na webu na bilo kojem jeziku koji želite. U ovom ćemo članku demonstrirati korištenje PHP -a. Da biste koristili PHP, morate imati instaliran PHP-CLI na računaru ili serveru.

  • PHP se može preuzeti sa php.net
  • PHP skripte se mogu izvršavati iz komandne linije. Za dodatne informacije i pomoć pri korištenju PHP -a pogledajte ovu stranicu priručnika za PHP.

Metoda 2 od 2: Razvoj vlastitog robota

Razvijte IRC Bot Korak 4
Razvijte IRC Bot Korak 4

Korak 1. Prikupite detalje o povezivanju

Morat ćete dobiti sljedeće podatke za uspješno povezivanje na mrežu.

  • Server: Naziv domene servera koji se koristi za povezivanje na IRC, kao što je

    chat.freenode.net

  • Port: U većini slučajeva ovo je 6667, ali ako niste sigurni, provjerite svog IRC klijenta ili web lokaciju mreže.
  • Nadimak: Nadimak koji bi vaš bot trebao koristiti. Imajte na umu da neki posebni znakovi obično nisu dopušteni (@#! ~).
  • Ident: Polje ident pojavljuje se nakon nadimka kada neko izvede WHOIS ovako:

    nadimak! ident@ime hosta

  • GECOS: Ovo polje obično sadrži pravo ime korisnika ili opći opis bota, ali tamo možete staviti sve što želite.
  • Channel: Obično želite da vaš bot bude prisutan na jednom ili više kanala. Na većini mreža, one imaju prefiks '#', ali to može biti nešto drugo.
Razvijte IRC Bot Korak 5
Razvijte IRC Bot Korak 5

Korak 2. Pokrenite konfiguraciju u skripti

Najosnovniji način za to je imenovanjem nekoliko varijabli prema gore navedenim imenima konfiguracije. Možete ih i pohraniti u konfiguracijsku datoteku i raščlaniti, ali zasad ćemo se držati apsolutnih potreba.

Razvijte IRC Bot Korak 6
Razvijte IRC Bot Korak 6

Korak 3. Povežite se na mrežu

Da biste to učinili, morate otvoriti utičnicu za server na navedenom portu. U ovaj dio trebate dodati i neki kôd za rukovanje greškama u slučaju da veza ne uspije iz bilo kojeg razloga. U ovom slučaju, PHP nam pruža neke zgodne funkcije za učinkovito rješavanje greške.

Razvijte IRC Bot Korak 7
Razvijte IRC Bot Korak 7

Korak 4. Registrirajte bot

To znači da svom serveru dostavljate svoj nadimak, identitet i GECOS, a ne da se registrujete na NickServ. Da biste to učinili, samo upišite NICK i USER naredbe na poslužitelj, nakon čega slijedi povratak karike i novi red. Imperativ je da to učinite točno kako je prikazano, jer je tako specificirano u RFC1459, specifikaciji za IRC protokol.

Imajte na umu da srednja dva parametra (u ovom slučaju, * i 8) moraju biti navedena, ali ih poslužitelj zanemaruje. Ova dva se koriste samo između povezanih poslužitelja, a ne od strane direktno povezanog klijenta

Razvijte IRC Bot Korak 8
Razvijte IRC Bot Korak 8

Korak 5. Nastavite dohvatiti podatke iz utičnice pomoću petlje

Ako ne koristite petlju, vaša bi se skripta odmah prekinula, a bot bi u osnovi bio beskoristan. Da biste ostali povezani, morate dohvatiti podatke sa servera, provjeriti ima li unosa u streamu koji želite i odgovoriti na to ako je tako. Ovdje prikupljamo podatke pomoću socket_read () kako bismo prikupili sve dostupne podatke. Ako postoji, nastavljamo raditi sve što je u toku. Moglo bi biti od pomoći i ispisivanje sirovih podataka na konzolu kako biste mogli vidjeti što se događa iz perspektive bota.

Razvijte IRC Bot Korak 9
Razvijte IRC Bot Korak 9

Korak 6. Napišite ping handler

Ovo je važno. Ako ne odgovorite na pingove na vrijeme, server će vas prekinuti. Pobrinimo se prvo o tome. Pingovi izgledaju ovako kada se pošalju sa servera:

PING: rajaniemi.freenode.net

. Poslužitelj ne mora stavljati svoje ime iza ':', može isporučiti sve što želi. * Morate * ponoviti tačno ono što je server rekao, osim koristeći PONG.

Razvijte IRC Bot korak 10
Razvijte IRC Bot korak 10

Korak 7. Pridružite se svojim kanalima

U redu, imamo robota koji se povezuje na mrežu i odgovara na pingove, ali inače ne radi ništa. Da bi ljudi vidjeli i koristili vašeg robota, on bi trebao biti na kanalu (u protivnom ćete mu morati reći da odgovara na privatne poruke).

  • Da bismo to učinili, provjerit ćemo kodove statusa poslužitelja 376 ili 422. 376 znači da je MOTD (poruka dana) gotova. 422 znači da nije bilo MOTD -a za slanje. Taj MOTD je samo nešto što server šalje kada se povežete, ali to je dobar pokazatelj kada možemo započeti pridruživanje kanalima.
  • Morat ćete izdati naredbu JOIN. Ovu naredbu može pratiti jedan ili više kanala odvojenih zarezom.
  • Primijetite da su podaci koje server šalje prikladno omeđeni razmacima. Na ovaj način možemo podijeliti podatke i referencirati ih pomoću indeksa niza.
Razvijte IRC Bot Korak 11
Razvijte IRC Bot Korak 11

Korak 8. Odgovorite na poruke kanala

A sada zabavni dio. Vaš bot se pridružio kanalu, pa ga sada možete koristiti za ono što želite. Kreirajmo primjer naredbe pod nazivom @moo.

  • Obratite pažnju na pomak gdje poruke počinju (ovo se odnosi i na kanale i na privatne poruke). Uvek je na istom mestu.
  • Možete upravljati naredbama s razmacima u njima tako što ćete ponovo spojiti dijeljene podatke ($ d). To je izvan opsega ovog članka.
  • Ako je cilj kanal (na primjer #botters-test), odgovorite na to. Ako se radi o privatnoj poruci, ovaj bit će biti nadimak vašeg bota! Zatim morate odgovoriti koristeći nadimak pošiljaoca, a ne vaš (inače biste razgovarali sami sa sobom, a to je jednostavno glupo).
Razvijte IRC Bot Korak 12
Razvijte IRC Bot Korak 12

Korak 9. Produžite svoj bot

Pomoću gore navedene implementacije možete dodati mnogo novih funkcija. Postoje mnoge druge naredbe koje se mogu izdati IRC mreži, kao što su upravljanje operacijama, udaranje i zabrana, postavljanje teme, među mnogim drugim značajkama.

Savjeti

  • Rezultat naredbe "/me" možete proizvesti tako da svoje poruke postavite prefiksom ovako:

    • PRIVMSG #channel: / 001Tekcija tekst ovdje / 001.
    • 001 znači ASCII znak 1 i kao takav će se tumačiti u PHP nizu s dvostrukim navodnicima. Alternativno, možete koristiti

      chr (1)

    • izvan niza.
  • Boje se mogu proizvesti u poruci prefiksom "\ 003" (ASCII kod 3) iza kojeg slijedi broj za boju. 0 = bijela, 1 = crna, 2 = plava, 3 = zelena, 4 = crvena […]. Za više boja pogledajte stranicu mIRC -a.
  • Zbog ljubaznosti, pribavite pristanak vlasnika kanala i IRC operatera prije nego što svog bota postavite na mrežu. Nemaju sve mreže i kanali dobrodošlu politiku prema robotima, čak ni oni s dobrim ponašanjem.
  • Neki IRC daemoni nadilaze specifikacije protokola i implementiraju druge funkcije. Ako ga pripremate za određenu mrežu, svakako možete koristiti te funkcije ako znate za njihov protokol. Međutim, ako želite da vaš bot bude raspoređen na nekoliko mreža, pokušajte ga držati prema onome što je u RFC -u.

Preporučuje se: