Kuidas arendada IRC robotit: 12 sammu (piltidega)

Sisukord:

Kuidas arendada IRC robotit: 12 sammu (piltidega)
Kuidas arendada IRC robotit: 12 sammu (piltidega)

Video: Kuidas arendada IRC robotit: 12 sammu (piltidega)

Video: Kuidas arendada IRC robotit: 12 sammu (piltidega)
Video: 5 урок - "Проповедуй и исцеляй" - Торбен Сондергаард. 2024, Märts
Anonim

Kui olete Interneti -releevestluses (IRC) osalenud, on tõenäoline, et olete mingil hetkel botiga kokku puutunud. Botid on sõltumatud programmid või skriptid, mis ühenduvad võrguga samamoodi nagu inimene. Neid saab programmeerida vastama kasutaja käsklustele või isegi vestlema. Sellest juhendist leiate, millised on teie võimalused IRC -roboti loomiseks ja kuidas seda nullist üles ehitada.

Sammud

Meetod 1: 2: valikute hindamine

Töötage välja IRC robot 1. samm
Töötage välja IRC robot 1. samm

Samm 1. Kaaluge kliendi skripti installimist

Mõnikord soovite lihtsalt lihtsat ülesannet teha ja te ei soovi, et see oleks sõltumatu programm. Sellisel juhul saate IRC kliendile skripti manustada. Seda tehakse üsna sageli mIRC -ga, millel on tugev skriptimootor ja lai valik skripte. See on lihtsaim valik ja väga soovitatav, kui teil pole palju programmeerimiskogemust või kogemusi. Selle juhendi ülejäänud osas peavad juhised järgima mõningaid arvutiprogrammeerimise tundmisi.

Töötage välja IRC robot 2. samm
Töötage välja IRC robot 2. samm

Samm 2. Mõelge oma botile juba olemasolevale koodibaasile

Seal on palju avatud lähtekoodiga ja tasuta programme, mis aitavad teil kiiresti kohandatud robotit üles seada. Üks selline näide on Eggdrop, vanim IRC robot, mida alles hoitakse.

Töötage välja IRC robot 3. samm
Töötage välja IRC robot 3. samm

Samm 3. Kaaluge oma boti kirjutamist

See on suurepärane võimalus arenenud IRC kasutajatele ja arendajatele, kes juba teavad programmeerimiskeelt. Saate kasutada peaaegu kõiki soovitud keeli, kui sellel on pistikupesa tugi, kuid populaarsed on Python, Lua, PHP, C ja Perl. Kui te ei tea ühtegi neist, kuid teate mõnda teist keelt, pole see probleem. Tavaliselt leiate veebist näiteid mis tahes keeles. Selle artikli puhul demonstreerime PHP kasutamist. PHP kasutamiseks peab teie arvutisse või serverisse olema installitud PHP-CLI.

  • PHP saab alla laadida saidilt php.net
  • PHP skripte saab käivitada käsurealt. Lisateavet ja abi PHP kasutamisel leiate siit PHP kasutusjuhendi lehelt.

Meetod 2/2: arendage oma robotit

Töötage välja IRC robot 4. samm
Töötage välja IRC robot 4. samm

Samm 1. Koguge ühenduse üksikasjad

Võrguga edukaks ühendamiseks peate hankima järgmise teabe.

  • Server: IRC -ga ühenduse loomiseks kasutatud serveri domeeninimi, näiteks

    chat.freenode.net

  • Sadam: Enamikul juhtudel on see 6667, kuid kui te pole selles kindel, kontrollige oma IRC -klienti või võrgu veebisaiti.
  • Hüüdnimi: Hüüdnimi, mida teie robot peaks kasutama. Pidage meeles, et mõned erimärgid pole tavaliselt lubatud (@#! ~).
  • Identne: ID -väli kuvatakse hüüdnime järel, kui keegi sooritab WHOIS -i järgmiselt:

    hüüdnimi! ident@hostinimi

  • GECOS: Sellel väljal on tavaliselt kasutaja tegelik nimi või bot -i üldine kirjeldus, kuid võite sinna sisestada kõik, mida soovite.
  • Kanal: Tavaliselt soovite, et teie robot oleks saadaval ühes või mitmes kanalis. Enamikus võrkudes on nende eesliide "#", kuid see võib olla midagi muud.
Töötage välja IRC robot 5. samm
Töötage välja IRC robot 5. samm

Samm 2. Vormistage skripti konfiguratsioon

Kõige lihtsam viis seda teha on nimetada mõned muutujad vastavalt ülaltoodud konfiguratsiooninimedele. Võite need salvestada ka konfiguratsioonifaili ja sõeluda, kuid praegu jääme lihtsalt absoluutsete vajaduste juurde.

Töötage välja IRC robot 6. samm
Töötage välja IRC robot 6. samm

Samm 3. Ühendage võrguga

Selleks peate avama määratud pordi serveri pistikupesa. Sellesse ossa peaksite lisama ka mõne veakäsitluskoodi juhuks, kui ühendus mingil põhjusel ebaõnnestub. Sel juhul pakub PHP meile mõningaid funktsioone vea tõhusaks käsitlemiseks.

Töötage välja IRC robot 7. samm
Töötage välja IRC robot 7. samm

Samm 4. Registreerige oma robot

See tähendab serverile oma hüüdnime, identiteedi ja GECOS -i edastamist, mitte NickServis registreerimist. Selleks kirjutage lihtsalt serverisse käsud NICK ja USER, millele järgneb käru tagastamine ja uus rida. On hädavajalik, et teete seda täpselt nii, nagu näidatud, sest nii on see täpsustatud IRC protokolli spetsifikatsioonis RFC1459.

Pange tähele, et kaks keskmist parameetrit (antud juhul * ja 8) tuleb määrata, kuid server eirab neid. Neid kahte kasutab ainult lingitud serverite vahel, mitte otseühendusega klient

Töötage välja IRC robot 8. samm
Töötage välja IRC robot 8. samm

Samm 5. Jätkake andmete toomist pistikupesast silmuse abil

Kui te tsüklit ei kasutaks, lõpeks teie skript kohe ja bot oleks põhimõtteliselt kasutu. Ühenduse hoidmiseks peate serverist andmed tooma, kontrollima soovitud voo sisendit ja vastama sellele, kui jah. Siin me haarame andmeid, kasutades socket_read (), et haarata meile kättesaadavaid andmeid. Kui see on olemas, jätkame kõike, mis on ringis. Abi võib olla ka lähteandmete konsoolile väljastamisest, et saaksite näha, mis botti vaatenurgast toimub.

Töötage välja IRC Boti samm 9
Töötage välja IRC Boti samm 9

Samm 6. Kirjutage pingikäsitleja

See on tähtis. Kui te ei reageeri pingile õigeaegselt, katkestab server teie ühenduse. Hooligem sellest kõigepealt. Pingud näevad serverist saadetuna välja sellised:

PING: rajaniemi.freenode.net

. Server ei pea oma nime ":" järele panema, see võib pakkuda kõike, mida tahab. Peate * kordama täpselt seda, mida server ütles, välja arvatud PONG -i kasutamine.

Töötage välja IRC Boti samm 10
Töötage välja IRC Boti samm 10

Samm 7. Liituge oma kanalitega

Okei, nii et meil on robot, mis ühendub võrguga ja reageerib pingerežiimidele, kuid muidu ei tee midagi. Et inimesed teie robotit näeksid ja kasutaksid, peaks see olema kanalil (vastasel juhul peaksite seda ütlema, et ta privaatsõnumitele vastaks).

  • Selleks kontrollime serveri olekukoode 376 või 422. 376 tähendab, et MOTD (päeva teade) on lõppenud. 422 tähendab, et saata ei olnud ühtegi MOTD -d. See MOTD on lihtsalt midagi, mida server saadab ühenduse loomisel, kuid see on hea näitaja selle kohta, millal saame hakata kanalitega liituma.
  • Peate andma käsu JOIN. Sellele käsule võib järgneda üks või mitu komaga eraldatud kanalit.
  • Pange tähele, et serveri saadetud andmed on mugavalt tühikutega piiratud. Nii saame andmeid jagada ja neile massiiviindeksi abil viidata.
Töötage välja IRC robot 11. samm
Töötage välja IRC robot 11. samm

Samm 8. Kanalisõnumitele vastamine

Nüüd lõbusast osast. Teie robot on kanaliga liitunud, nii et nüüd saate seda kasutada selleks, mida soovite. Loome näite käsu nimega @moo.

  • Pange tähele nihet, kust sõnumid algavad (see kehtib nii kanalite kui ka privaatsõnumite kohta). See on alati samas kohas.
  • Saate käske käsutada tühikutega, liites tükeldatud andmed kokku ($ d). See jääb selle artikli raamest välja.
  • Kui sihtmärk on kanal (nt #botters-test), siis vastate sellele. Kui see on privaatsõnum, on see bitt teie roboti hüüdnimi! Seejärel peate vastama saatja hüüdnimega, mitte teie omaga (muidu räägiksite iseendaga ja see on lihtsalt rumal).
Töötage välja IRC robot 12. samm
Töötage välja IRC robot 12. samm

Samm 9. Laiendage oma robotit

Ülaltoodud rakenduse abil saate lisada palju uusi funktsioone. IRC -võrgule saab anda palju muid käske, näiteks toimingute haldamine, löömine ja keelamine, teema seadistamine, lisaks paljudele muudele funktsioonidele.

Näpunäiteid

  • Käsu "/me" tulemuse saate luua sõnumite eesliitega:

    • PRIVMSG #kanal: / 001TEGEVUSE tekst siin / 001.
    • 001 tähendab ASCII märki 1 ja seda tõlgendatakse sellisena kahekordse jutumärgiga PHP -stringis. Teise võimalusena võite kasutada

      chr (1)

    • nöörist väljaspool.
  • Värve saab sõnumis toota, lisades eesliite "\ 003" (ASCII -kood 3), millele järgneb värvi jaoks number. 0 = valge, 1 = must, 2 = sinine, 3 = roheline, 4 = punane […]. Lisateavet leiate mIRC lehelt.
  • Viisakuse huvides hankige enne roboti võrku viimist kanalite omanike ja IRC -operaatorite nõusolek. Kõigil võrkudel ja kanalitel pole robotite, isegi hästi käituvate, suhtes tervitatav poliitika.
  • Mõned IRC deemonid lähevad kaugemale protokolli spetsifikatsioonidest ja rakendavad muid funktsioone. Kui kasutate seda konkreetse võrgu jaoks, saate neid funktsioone kindlasti kasutada, kui teate nende protokolli. Kui soovite, et teie robotit kasutataks mitmes võrgus, proovige seda siiski RFC -s hoida.

Soovitan: