Com desenvolupar un bot IRC: 12 passos (amb imatges)

Taula de continguts:

Com desenvolupar un bot IRC: 12 passos (amb imatges)
Com desenvolupar un bot IRC: 12 passos (amb imatges)

Vídeo: Com desenvolupar un bot IRC: 12 passos (amb imatges)

Vídeo: Com desenvolupar un bot IRC: 12 passos (amb imatges)
Vídeo: ПРИВОЗ. ОДЕССА СЕГОДНЯ. МЯСО РЫБА ЦЕНЫ И НОЖИ 2022 2024, Abril
Anonim

Si heu estat a Internet Relay Chat (IRC), és probable que hagueu trobat algun bot en algun moment. Els robots són programes o scripts independents que es connecten a una xarxa de la mateixa manera que ho faria un humà. Es poden programar per respondre a les ordres de l'usuari o fins i tot xatejar. En aquesta guia, podeu trobar quines són les vostres opcions per construir un bot IRC i com construir-ne un des de zero.

Passos

Mètode 1 de 2: avaluació d’opcions

Desenvolupeu un bot IRC Pas 1
Desenvolupeu un bot IRC Pas 1

Pas 1. Penseu en la possibilitat d'instal·lar un script de client

De vegades només voleu fer una tasca senzilla i no voleu que sigui un programa independent. En aquest cas, podeu adjuntar un script a un client IRC. Això és bastant habitual de fer-ho amb mIRC, que té un motor de scripts robust i una àmplia varietat de scripts disponibles. Aquesta és l'opció més fàcil i molt recomanable si no teniu molta experiència de programació. Per a la resta d’aquesta guia, les instruccions requereixen un cert coneixement de la programació informàtica.

Desenvolupeu un bot IRC Pas 2
Desenvolupeu un bot IRC Pas 2

Pas 2. Penseu en una base de codis preexistent per al vostre bot

Hi ha molts programes gratuïts i de codi obert que us poden ajudar a configurar el vostre propi bot personalitzat ràpidament. Un d’aquests exemples és Eggdrop, el bot IRC més antic que encara es manté.

Desenvolupeu un bot IRC Pas 3
Desenvolupeu un bot IRC Pas 3

Pas 3. Penseu a escriure el vostre propi bot

Per als usuaris i desenvolupadors avançats d’IRC que ja coneixen el seu llenguatge de programació, aquesta és una opció fantàstica. Podeu utilitzar gairebé qualsevol idioma que vulgueu, sempre que tingui suport per a sòcol, però els més populars són Python, Lua, PHP, C i Perl. Si no en coneixeu cap, però coneixeu un altre idioma, no és un problema. Normalment, podeu trobar exemples al web en qualsevol idioma que vulgueu. Per a aquest article, demostrarem l'ús de PHP. Per utilitzar PHP, haureu d’instal·lar PHP-CLI al vostre ordinador o servidor.

  • PHP es pot descarregar des de php.net
  • Els scripts PHP es poden executar des de la línia d'ordres. Per obtenir informació addicional i ajudar-vos a utilitzar PHP, consulteu aquesta pàgina del manual de PHP.

Mètode 2 de 2: desenvolupar el vostre propi bot

Desenvolupeu un bot IRC Pas 4
Desenvolupeu un bot IRC Pas 4

Pas 1. Recopileu els detalls de la connexió

Haureu d’obtenir la informació següent per connectar-vos amb èxit a la xarxa.

  • Servidor: El nom de domini del servidor utilitzat per connectar-se a l'IRC, com ara

    chat.freenode.net

  • Port: En la majoria dels casos, és 6667, però si no esteu segur, consulteu el vostre propi client IRC o el lloc web de la xarxa.
  • Sobrenom: L'àlies que hauria d'utilitzar el vostre bot. Tingueu en compte que normalment no es permeten alguns caràcters especials (@ #! ~).
  • Ident: El camp d'identificació apareix després del sobrenom quan algú realitza un WHOIS com aquest:

    sobrenom! ident @ nom de l’amfitrió

  • GECOS: Aquest camp normalment conté el nom real d'un usuari o una descripció general del bot, però hi podeu posar el que vulgueu.
  • Canal: Normalment voleu que el vostre bot estigui present en un o més canals. A la majoria de xarxes, es posen prefixats amb '#', però pot ser una altra cosa.
Desenvolupeu un bot IRC Pas 5
Desenvolupeu un bot IRC Pas 5

Pas 2. Inicialitzeu la configuració al vostre script

La forma més bàsica de fer-ho és nomenant algunes variables segons els noms de configuració anteriors. També podeu emmagatzemar-los en un fitxer de configuració i analitzar-los, però ara per ara només ens quedarem amb les necessitats absolutes.

Desenvolupeu un bot IRC Pas 6
Desenvolupeu un bot IRC Pas 6

Pas 3. Connecteu-vos a la xarxa

Per fer-ho, haureu d'obrir un sòcol al servidor al port especificat. També heu d’afegir algun codi de gestió d’errors en aquesta part per si la connexió falla per qualsevol motiu. En aquest cas, PHP ens proporciona algunes funcions ordenades per gestionar l’error amb eficàcia.

Desenvolupeu un bot IRC Pas 7
Desenvolupeu un bot IRC Pas 7

Pas 4. Registra el bot

Això significa subministrar el vostre sobrenom, identificació i GECOS al servidor, sense registrar-vos a NickServ. Per fer-ho, només cal que escriviu les ordres NICK i USER al servidor, seguides d'un retorn de carro i una nova línia. És imprescindible fer-ho exactament com es mostra, perquè així s’especifica a RFC1459, l’especificació per al protocol IRC.

Tingueu en compte que cal especificar els dos paràmetres centrals (en aquest cas, * i 8), però el servidor els ignora. Aquests dos només s’utilitzen entre servidors enllaçats, no per un client que es connecta directament

Desenvolupeu un bot IRC Pas 8
Desenvolupeu un bot IRC Pas 8

Pas 5. Seguiu recuperant dades del sòcol mitjançant un bucle

Si no feu servir un bucle, el vostre script acabaria immediatament i el bot seria bàsicament inútil. Per estar connectat, heu d’extreure dades del servidor, comprovar si hi ha cap entrada al flux que vulgueu i respondre-hi si és així. Aquí, agafem dades mitjançant socket_read () per obtenir les dades disponibles per a nosaltres. Si n’hi ha, seguim fent el que hi ha al bucle. Pot ser útil també enviar les dades en brut a la consola perquè pugueu veure què passa des de la perspectiva del bot.

Desenvolupeu un bot IRC Pas 9
Desenvolupeu un bot IRC Pas 9

Pas 6. Escriviu un controlador de ping

Això és important. Si no responeu als pings de manera oportuna, el servidor us desconnectarà. Primer ens ocupem d’això. Els pings tenen aquest aspecte quan s’envien des del servidor:

PING: rajaniemi.freenode.net

. El servidor no ha de posar el seu nom després de ':', pot subministrar el que vulgui. * Heu de * repetir exactament el que va dir el servidor, excepte amb PONG.

Desenvolupeu un bot IRC Pas 10
Desenvolupeu un bot IRC Pas 10

Pas 7. Uniu-vos als vostres canals

D’acord, doncs, tenim un bot que es connecta a la xarxa i respon a pings, però d’altra manera no fa res. Perquè la gent pugui veure i utilitzar el bot, hauria de ser en un canal (en cas contrari, hauríeu de dir-li que respongui als missatges privats).

  • Per fer-ho, comprovarem si hi ha codis d'estat del servidor 376 o 422. 376 significa que el MOTD (missatge del dia) ha finalitzat. 422 vol dir que no hi havia cap MOTD per enviar. Aquest MOTD és una cosa que el servidor envia quan us connecteu, però és un bon indicador de quan podem començar a unir-vos als canals.
  • Haureu d’emetre una ordre JOIN. Aquesta ordre pot anar seguida d'un o més canals separats per una coma.
  • Tingueu en compte que les dades que envia el servidor estan convenientment delimitades per espais. D’aquesta manera podem dividir les dades i fer-ne referència mitjançant un índex de matriu.
Desenvolupeu un bot IRC Pas 11
Desenvolupeu un bot IRC Pas 11

Pas 8. Respondre als missatges del canal

Ara per la part divertida. El vostre robot s'ha unit al canal, de manera que ara podeu utilitzar-lo per al que volíeu. Creem un exemple d’ordre anomenat @moo.

  • Tingueu en compte el desplaçament on comencen els missatges (això s'aplica tant als canals com als missatges privats). Sempre està al mateix lloc.
  • Podeu gestionar ordres amb espais en elles combinant les dades fragmentades ($ d). Això està fora de l’abast d’aquest article.
  • Si l'objectiu és un canal (com ara # botters-test), responeu a això. Si es tracta d'un missatge privat, aquest bit serà el sobrenom del vostre bot. A continuació, haureu de respondre fent servir el sobrenom del remitent, no el vostre (en cas contrari, parlaríeu amb vosaltres mateixos i això és una tonteria).
Desenvolupeu un bot IRC Pas 12
Desenvolupeu un bot IRC Pas 12

Pas 9. Amplieu el bot

Podeu afegir moltes funcions noves mitjançant la implementació anterior. Hi ha moltes altres ordres que es poden emetre a la xarxa IRC, com ara gestionar operacions operatives, llançar i prohibir, configurar el tema, entre moltes altres funcions.

Consells

  • Podeu produir el resultat de l'ordre "/ me" prefixant els vostres missatges així:

    • PRIVMSG #canal: / 001ACTION text aquí / 001.
    • 001 significa caràcter ASCII 1 i s'interpretarà com a tal en una cadena de PHP entre cometes. Com a alternativa, podeu utilitzar-lo

      chr (1)

    • fora de la cadena.
  • Els colors es poden produir en un missatge prefixant "\ 003" (codi ASCII 3) seguit d'un número per a un color. 0 = blanc, 1 = negre, 2 = blau, 3 = verd, 4 = vermell […]. Consulteu la pàgina de mIRC per obtenir més colors.
  • Per cortesia, obteniu el consentiment dels propietaris de canals i dels operadors d’IRC abans de posar el vostre bot en línia. No totes les xarxes i canals tenen una política de benvinguda envers els robots, fins i tot els de bon comportament.
  • Alguns dimonis IRC van més enllà de les especificacions del protocol i implementen altres funcions. Si el preparau per a una xarxa específica, segur que podeu fer servir aquestes funcions si en coneixeu el protocol. Tanmateix, si voleu que el vostre bot es desplegui en diverses xarxes, intenteu mantenir-lo al contingut del RFC.

Recomanat: