IRC -botin kehittäminen: 12 vaihetta (kuvilla)

Sisällysluettelo:

IRC -botin kehittäminen: 12 vaihetta (kuvilla)
IRC -botin kehittäminen: 12 vaihetta (kuvilla)

Video: IRC -botin kehittäminen: 12 vaihetta (kuvilla)

Video: IRC -botin kehittäminen: 12 vaihetta (kuvilla)
Video: Lil Durk - 248 (Official Audio) 2024, Huhtikuu
Anonim

Jos olet ollut Internet Relay Chatissa (IRC), olet todennäköisesti törmännyt bottiin jossain vaiheessa. Botit ovat itsenäisiä ohjelmia tai komentosarjoja, jotka muodostavat yhteyden verkkoon samalla tavalla kuin ihminen. Ne voidaan ohjelmoida vastaamaan käyttäjän komentoihin tai jopa keskustelemaan. Tästä oppaasta näet, mitä vaihtoehtoja sinulla on IRC -botin rakentamiseen, sekä kuinka rakentaa se tyhjästä.

Askeleet

Menetelmä 1/2: Vaihtoehtojen arviointi

Kehitä IRC -robotti Vaihe 1
Kehitä IRC -robotti Vaihe 1

Vaihe 1. Harkitse asiakaskomentosarjan asentamista

Joskus haluat vain yksinkertaisen tehtävän, etkä halua sen olevan itsenäinen ohjelma. Tässä tapauksessa voit liittää komentosarjan IRC -asiakasohjelmaan. Tämä on melko yleistä mIRC: llä, jolla on vankka komentosarjamoottori ja laaja valikoima käytettävissä olevia skriptejä. Tämä on helpoin vaihtoehto ja erittäin suositeltava, jos sinulla ei ole paljon ohjelmointikokemusta. Tämän oppaan loppuosassa ohjeet edellyttävät jonkin verran tietokoneohjelmoinnin tuntemusta.

Kehitä IRC -robotti Vaihe 2
Kehitä IRC -robotti Vaihe 2

Vaihe 2. Harkitse botillesi jo olemassa olevaa kooditietokantaa

On olemassa monia avoimen lähdekoodin ja ilmaisia ohjelmia, joiden avulla voit määrittää oman mukautetun botin nopeasti. Yksi esimerkki on Eggdrop, vanhin IRC -botti, jota edelleen ylläpidetään.

Kehitä IRC -robotti Vaihe 3
Kehitä IRC -robotti Vaihe 3

Vaihe 3. Harkitse oman botin kirjoittamista

Edistyneille IRC -käyttäjille ja kehittäjille, jotka osaavat jo ohjelmointikielen, tämä on loistava vaihtoehto. Voit käyttää melkein mitä tahansa haluamaasi kieltä, kunhan sillä on socket -tuki, mutta suosittuja kieliä ovat Python, Lua, PHP, C ja Perl. Jos et tiedä mitään näistä, mutta tiedät toisen kielen, se ei ole ongelma. Löydät yleensä esimerkkejä verkosta haluamallasi kielellä. Tässä artikkelissa esittelemme PHP: n käytön. PHP: n käyttäminen edellyttää, että tietokoneellesi tai palvelimellesi on asennettu PHP-CLI.

  • PHP voidaan ladata osoitteesta php.net
  • PHP -komentosarjat voidaan suorittaa komentoriviltä. Jos haluat lisätietoja ja apua PHP: n käytössä, katso tämä PHP -käyttöopas.

Tapa 2/2: Oman robotin kehittäminen

Kehitä IRC -robotti Vaihe 4
Kehitä IRC -robotti Vaihe 4

Vaihe 1. Kerää yhteyden tiedot

Sinun on hankittava seuraavat tiedot, jotta voit muodostaa yhteyden verkkoon.

  • Palvelin: IRC -yhteyden muodostamiseen käytetyn palvelimen verkkotunnus, kuten

    chat.freenode.net

  • Portti: Useimmissa tapauksissa tämä on 6667, mutta jos et ole varma, tarkista oma IRC -asiakas tai verkon verkkosivusto.
  • Nimimerkki: Lempinimi, jota botin tulisi käyttää. Muista, että jotkin erikoismerkit eivät yleensä ole sallittuja (@#! ~).
  • Identti: Tunnistekenttä näkyy lempinimen jälkeen, kun joku suorittaa WHOIS -toiminnon seuraavasti:

    lempinimi! ident@isäntänimi

  • GECOS: Tässä kentässä on yleensä käyttäjän oikea nimi tai botin yleiskuvaus, mutta voit lisätä sinne mitä haluat.
  • Kanava: Haluat yleensä, että botti on läsnä yhdessä tai useammassa kanavassa. Useimmissa verkoissa niiden etuliite on#, mutta se voi olla jotain muuta.
Kehitä IRC -robotti Vaihe 5
Kehitä IRC -robotti Vaihe 5

Vaihe 2. Alusta komentosarjan määritykset

Yksinkertaisin tapa tehdä tämä on nimetä muutama muuttuja yllä olevien kokoonpanonimien mukaan. Voit myös tallentaa ne määritystiedostoon ja jäsentää ne, mutta tällä hetkellä pysymme vain ehdottomissa tarpeissa.

Kehitä IRC -robotti Vaihe 6
Kehitä IRC -robotti Vaihe 6

Vaihe 3. Muodosta yhteys verkkoon

Tätä varten sinun on avattava pistorasia määritetyn portin palvelimelle. Sinun on myös lisättävä tähän osaan virheenkäsittelykoodi, jos yhteys epäonnistuu jostain syystä. Tässä tapauksessa PHP tarjoaa meille joitain siistejä toimintoja virheen tehokkaaseen käsittelyyn.

Kehitä IRC -robotti Vaihe 7
Kehitä IRC -robotti Vaihe 7

Vaihe 4. Rekisteröi botti

Tämä tarkoittaa, että annat lempinimesi, identiteettisi ja GECOS: n palvelimelle, älä rekisteröidy NickServiin. Voit tehdä tämän kirjoittamalla vain NICK- ja USER -komennot palvelimelle, jota seuraa vaunun palautus ja uusi rivi. On välttämätöntä, että teet sen täsmälleen kuvan mukaisesti, koska näin on määritelty IRC -protokollan määrityksessä RFC1459.

Huomaa, että kaksi keskimmäistä parametria (tässä tapauksessa * ja 8) on määritettävä, mutta palvelin jättää ne huomiotta. Näitä kahta käytetään vain linkitettyjen palvelimien välillä, ei suoraan yhdistävän asiakkaan toimesta

Kehitä IRC -robotti Vaihe 8
Kehitä IRC -robotti Vaihe 8

Vaihe 5. Jatka tietojen noutamista pistorasiasta silmukan avulla

Jos et käyttänyt silmukkaa, komentosarjasi päättyy välittömästi ja botti on periaatteessa hyödytön. Pysyäksesi yhteydessä sinun on haettava tietoja palvelimelta, tarkistettava, onko syötteitä haluamassasi streamissa, ja vastattava niihin, jos on. Täällä keräämme tietoja socket_read (): n avulla saadaksemme kaikki käytettävissä olevat tiedot. Jos on, jatkamme mitä tahansa silmukassa. Raakadatan lähettäminen konsoliin saattaa auttaa, jotta näet, mitä tapahtuu botin näkökulmasta.

Kehitä IRC -robotti Vaihe 9
Kehitä IRC -robotti Vaihe 9

Vaihe 6. Kirjoita ping -käsittelijä

Tämä on tärkeää. Jos et vastaa ping -viesteihin ajoissa, palvelin katkaisee yhteyden. Pidetään siitä ensin huolta. Pingit näyttävät tältä, kun ne lähetetään palvelimelta:

PING: rajaniemi.freenode.net

. Palvelimen ei tarvitse kirjoittaa nimeään ':' -merkin jälkeen, se voi toimittaa mitä tahansa. Sinun * on * toistettava täsmälleen se, mitä palvelin sanoi, paitsi käyttämällä PONGia.

Kehitä IRC -robotti Vaihe 10
Kehitä IRC -robotti Vaihe 10

Vaihe 7. Liity kanaviin

Okei, joten meillä on botti, joka muodostaa yhteyden verkkoon ja vastaa ping -viesteihin, mutta ei muuten tee mitään. Jotta ihmiset voivat nähdä ja käyttää botiasi, sen pitäisi olla kanavalla (muuten sinun on kerrottava se vastataksesi yksityisviesteihin).

  • Tätä varten tarkistamme palvelimen tilakoodit 376 tai 422. 376 tarkoittaa, että MOTD (päivän viesti) on valmis. 422 tarkoittaa, ettei lähetettävää MOTD: tä ollut. Tämä MOTD on vain jotain, jonka palvelin lähettää, kun muodostat yhteyden, mutta se on hyvä osoitus siitä, milloin voimme aloittaa liittymisen kanaviin.
  • Sinun on annettava JOIN -komento. Tätä komentoa voi seurata yksi tai useampi kanava, jotka on erotettu toisistaan pilkulla.
  • Huomaa, että palvelimen lähettämä data on kätevästi rajattu välilyönneillä. Tällä tavalla voimme jakaa tiedot ja viitata niihin taulukkohakemiston avulla.
Kehitä IRC -botti Vaihe 11
Kehitä IRC -botti Vaihe 11

Vaihe 8. Vastaa kanavaviesteihin

Nyt hauska osa. Botisi on liittynyt kanavaan, joten voit nyt käyttää sitä mihin haluat. Luodaan esimerkkikomento nimeltä @moo.

  • Huomaa viestien alkamisaika (tämä koskee sekä kanavia että yksityisviestejä). Se on aina samassa paikassa.
  • Voit käsitellä komentoja, joissa on välilyöntejä, liittämällä paloitellut tiedot takaisin yhteen ($ d). Se on tämän artikkelin ulkopuolella.
  • Jos kohde on kanava (kuten #botters-testi), vastaat siihen. Jos kyseessä on yksityisviesti, tämä bitti on botin lempinimi! Sinun on sitten vastattava lähettäjän lempinimellä, ei sinun (muutoin puhut itsellesi, ja se on vain typerää).
Kehitä IRC -robotti Vaihe 12
Kehitä IRC -robotti Vaihe 12

Vaihe 9. Laajenna botiasi

Voit lisätä monia uusia ominaisuuksia yllä olevan toteutuksen avulla. IRC -verkolle voidaan antaa monia muita komentoja, kuten toimintojen hallinta, potkiminen ja kieltäminen, aiheen asettaminen monien muiden ominaisuuksien lisäksi.

Vinkkejä

  • Voit tuottaa "/me" -komennon tuloksen liittämällä viestisi näin:

    • PRIVMSG #kanava: / 001Toiminto teksti tässä / 001.
    • 001 tarkoittaa ASCII -merkkiä 1, ja sitä tulkitaan sellaisenaan lainausmerkkisessä PHP -merkkijonossa. Vaihtoehtoisesti voit käyttää

      chr (1)

    • merkkijonon ulkopuolella.
  • Värit voidaan tuottaa viestissä etuliitteellä "\ 003" (ASCII -koodi 3) ja sen jälkeen numeroa värille. 0 = valkoinen, 1 = musta, 2 = sininen, 3 = vihreä, 4 = punainen […]. Katso lisää värejä mIRC: n sivulta.
  • Hanki kohteliaisuuden vuoksi kanavien omistajien ja IRC -operaattoreiden suostumus ennen kuin otat botin käyttöön verkossa. Kaikilla verkoilla ja kanavilla ei ole tervetullutta käytäntöä botteja kohtaan, edes hyvin käyttäytyviä.
  • Jotkut IRC -demonit ylittävät protokollan vaatimukset ja toteuttavat muita ominaisuuksia. Jos olet suunnittelemassa sitä tietylle verkolle, voit varmasti hyödyntää näitä ominaisuuksia, jos tiedät niiden protokollan. Jos haluat, että botti otetaan käyttöön useissa verkoissa, yritä kuitenkin pitää se RFC: n sisällössä.

Suositeltava: