Hoe om 'n IRC Bot te ontwikkel: 12 stappe (met foto's)

INHOUDSOPGAWE:

Hoe om 'n IRC Bot te ontwikkel: 12 stappe (met foto's)
Hoe om 'n IRC Bot te ontwikkel: 12 stappe (met foto's)

Video: Hoe om 'n IRC Bot te ontwikkel: 12 stappe (met foto's)

Video: Hoe om 'n IRC Bot te ontwikkel: 12 stappe (met foto's)
Video: 6 weetjes over penissen die jij ABSOLUUT wil weten 2024, April
Anonim

As u op Internet Relay Chat (IRC) was, is die kans goed dat u op 'n stadium 'n bot teëgekom het. Bots is onafhanklike programme of skrifte wat op dieselfde manier as 'n mens aan 'n netwerk koppel. Hulle kan geprogrammeer word om op gebruikersopdragte te reageer of selfs te gesels. In hierdie gids kan u uitvind wat u opsies is om 'n IRC -bot te bou, asook hoe u dit van nuuts af kan bou.

Stappe

Metode 1 van 2: Evaluering van opsies

Ontwikkel 'n IRC Bot Stap 1
Ontwikkel 'n IRC Bot Stap 1

Stap 1. Oorweeg die installering van 'n kliënt script

Soms wil u net 'n eenvoudige taak verrig en wil dit nie 'n onafhanklike program wees nie. In hierdie geval kan u 'n script aan 'n IRC -kliënt heg. Dit is redelik algemeen om te doen met mIRC, wat 'n robuuste script -enjin en 'n wye verskeidenheid beskikbare skrifte het. Dit is die maklikste opsie en word sterk aanbeveel as u nie veel of programmeerervaring het nie. Vir die res van hierdie gids benodig die instruksies kennis van rekenaarprogrammering.

Ontwikkel 'n IRC Bot Stap 2
Ontwikkel 'n IRC Bot Stap 2

Stap 2. Oorweeg 'n bestaande kodebasis vir u bot

Daar is baie open source en gratis programme wat u kan help om vinnig u eie bot op te stel. Een so 'n voorbeeld is Eggdrop, die oudste IRC -bot wat steeds onderhou word.

Ontwikkel 'n IRC Bot Stap 3
Ontwikkel 'n IRC Bot Stap 3

Stap 3. Oorweeg om u eie bot te skryf

Dit is 'n uitstekende opsie vir gevorderde IRC -gebruikers en ontwikkelaars wat reeds 'n programmeertaal ken. U kan bykans enige taal wat u wil gebruik, solank dit socket -ondersteuning het, maar gewilde taal is Python, Lua, PHP, C en Perl. As u nie een hiervan ken nie, maar u wel 'n ander taal ken, is dit nie 'n probleem nie. U kan gewoonlik voorbeelde op die internet vind in enige taal wat u wil. Vir hierdie artikel demonstreer ons hoe u PHP gebruik. Om PHP te kan gebruik, moet PHP-CLI op u rekenaar of bediener geïnstalleer wees.

  • PHP kan afgelaai word vanaf php.net
  • PHP -skrifte kan vanaf die opdragreël uitgevoer word. Raadpleeg hierdie PHP -handleidingbladsy vir meer inligting en hulp met die gebruik van PHP.

Metode 2 van 2: Ontwikkel u eie bot

Ontwikkel 'n IRC Bot Stap 4
Ontwikkel 'n IRC Bot Stap 4

Stap 1. Versamel die verbindingsbesonderhede

U moet die volgende inligting kry om suksesvol met die netwerk te konnekteer.

  • Bediener: Die domeinnaam van die bediener wat gebruik word om met IRC te skakel, soos

    chat.freenode.net

  • Poort: In die meeste gevalle is dit 6667, maar as u nie seker is nie, kyk dan na u eie IRC -kliënt of die webwerf van die netwerk.
  • Bynaam: Die bynaam wat u bot moet gebruik. Hou in gedagte dat sommige spesiale karakters gewoonlik nie toegelaat word nie (@#! ~).
  • Ident: Die identiteitsveld verskyn na die bynaam wanneer iemand 'n WHOIS soos hierdie uitvoer:

    bynaam! ident@gasheernaam

  • GECOS: Hierdie veld bevat gewoonlik die regte naam van 'n gebruiker of 'n algemene beskrywing van die bot, maar u kan daarin sit wat u wil.
  • Kanaal: U wil gewoonlik hê dat u bot in een of meer kanale moet wees. Op die meeste netwerke het hierdie 'n voorvoegsel '#', maar dit kan iets anders wees.
Ontwikkel 'n IRC Bot Stap 5
Ontwikkel 'n IRC Bot Stap 5

Stap 2. Initialiseer die konfigurasie in u script

Die mees basiese manier om dit te doen is deur 'n paar veranderlikes te noem volgens die konfigurasie name hierbo. U kan dit ook in 'n konfigurasielêer stoor en ontleed, maar op die oomblik bly ons by die absolute noodsaaklikhede.

Ontwikkel 'n IRC Bot Stap 6
Ontwikkel 'n IRC Bot Stap 6

Stap 3. Koppel aan die netwerk

Om dit te kan doen, moet u 'n aansluiting vir die bediener op die gespesifiseerde poort oopmaak. U moet ook 'n fouthanteringskode in hierdie deel byvoeg as die verbinding om een of ander rede misluk. In hierdie geval bied PHP 'n paar netjiese funksies om die fout effektief te hanteer.

Ontwikkel 'n IRC Bot Stap 7
Ontwikkel 'n IRC Bot Stap 7

Stap 4. Registreer u bot

Dit beteken dat u u bynaam, identiteit en GECOS aan die bediener moet verskaf, maar nie by NickServ moet registreer nie. Om dit te doen, skryf net die NICK- en USER -opdragte aan die bediener, gevolg deur 'n koetsopgawe en nuwe lyn. Dit is noodsaaklik dat u dit presies doen soos aangedui, want dit is hoe dit gespesifiseer word in RFC1459, die spesifikasie vir die IRC -protokol.

Let daarop dat die middelste twee parameters (in hierdie geval * en 8) gespesifiseer moet word, maar dit word deur die bediener geïgnoreer. Die twee word slegs gebruik tussen gekoppelde bedieners, nie deur 'n kliënt wat direk verbind nie

Ontwikkel 'n IRC Bot Stap 8
Ontwikkel 'n IRC Bot Stap 8

Stap 5. Hou aan om data met behulp van 'n lus uit die sok te haal

As u nie 'n lus gebruik nie, word u skrif onmiddellik beëindig en die bot is basies nutteloos. Om verbind te bly, moet u data van die bediener af haal, kyk of daar enige insette in die stroom is wat u wil hê en reageer daarop indien wel. Hier gryp ons data met behulp van socket_read () om enige beskikbare data te kry. As dit die geval is, hou ons aan om alles te doen. Dit kan ook nuttig wees om die rou data na die konsole te stuur, sodat u kan sien wat aangaan vanuit die bot se perspektief.

Ontwikkel 'n IRC Bot Stap 9
Ontwikkel 'n IRC Bot Stap 9

Stap 6. Skryf 'n ping -hanteerder

Dit is belangrik. As u nie betyds op pings reageer nie, sal die bediener u ontkoppel. Laat ons eers daarvoor sorg. Pings lyk so as dit vanaf die bediener gestuur word:

PING: rajaniemi.freenode.net

. Die bediener hoef nie sy naam na die ':' te plaas nie, hy kan voorsien wat hy wil. U moet * presies herhaal wat die bediener gesê het, behalwe om PONG te gebruik.

Ontwikkel 'n IRC Bot Stap 10
Ontwikkel 'n IRC Bot Stap 10

Stap 7. Sluit aan by u kanale

Goed, so ons het 'n bot wat met die netwerk verbind word en op pings reageer, maar andersins niks doen nie. Vir mense om u bot te sien en te gebruik, moet dit op 'n kanaal wees (anders moet u dit aanbeveel om op privaat boodskappe te reageer).

  • Om dit te doen, kyk ons na bedienerstatuskodes 376 of 422. 376 beteken dat die MOTD (boodskap van die dag) klaar is. 422 beteken dat daar geen MOTD was om te stuur nie. Daardie MOTD is net iets wat die bediener stuur wanneer u verbinding maak, maar dit is 'n goeie aanduiding vir wanneer ons kan begin aansluit by kanale.
  • U moet 'n JOIN -opdrag gee. Hierdie opdrag kan gevolg word deur een of meer kanale geskei deur 'n komma.
  • Let op dat die data wat die bediener stuur, gerieflik deur spasies afgebaken word. Op hierdie manier kan ons die data verdeel en daarna verwys met behulp van 'n skikkingindeks.
Ontwikkel 'n IRC Bot Stap 11
Ontwikkel 'n IRC Bot Stap 11

Stap 8. Reageer op kanaalboodskappe

Nou vir die lekker deel. Jou bot het by die kanaal aangesluit, sodat jy dit nou kan gebruik vir wat jy wou. Kom ons skep 'n voorbeeldopdrag genaamd @moo.

  • Let op die offset waar boodskappe begin (dit geld vir beide kanale en private boodskappe). Dit is altyd op dieselfde plek.
  • U kan opdragte met spasies daarin hanteer deur die stukke data weer saam te sny ($ d). Dit is buite die omvang van hierdie artikel.
  • As die teiken 'n kanaal is (soos #botters-test), antwoord u daarop. As dit 'n privaat boodskap is, is hierdie bietjie die bynaam van u bot! U moet dan antwoord met die bynaam van die sender, nie die uwe nie (anders praat u met uself, en dit is net dom).
Ontwikkel 'n IRC Bot Stap 12
Ontwikkel 'n IRC Bot Stap 12

Stap 9. Brei u bot uit

U kan baie nuwe funksies byvoeg deur die bogenoemde implementering te gebruik. Daar is baie ander opdragte wat aan die IRC -netwerk uitgereik kan word, soos die bestuur van ops, skop en verbied, die onderwerp, onder vele ander funksies.

Wenke

  • U kan die resultaat van die "/me" -opdrag lewer deur u boodskappe so voor te skryf:

    • PRIVMSG #kanaal: / 001AKSIE teks hier / 001.
    • 001 beteken ASCII -karakter 1 en sal as sodanig geïnterpreteer word in 'n dubbel aangehaalde PHP -string. Alternatiewelik kan u dit gebruik

      chr (1)

    • buite die tou.
  • Kleure kan in 'n boodskap geproduseer word deur voorvoegsel "\ 003" (ASCII -kode 3) gevolg deur 'n nommer vir 'n kleur. 0 = wit, 1 = swart, 2 = blou, 3 = groen, 4 = rooi […]. Sien mIRC se bladsy vir meer kleure.
  • Met vergunning, kry toestemming van kanaleienaars en IRC -operateurs voordat u u bot aanlyn bring. Nie alle netwerke en kanale het 'n welkome beleid teenoor bots nie, selfs goed gedra.
  • Sommige IRC -demone gaan verder as die spesifikasies van die protokol en implementeer ander funksies. As u dit vir 'n spesifieke netwerk voorberei, kan u beslis van hierdie funksies gebruik maak as u van hul protokol weet. As u egter wil hê dat u bot op verskeie netwerke moet ontplooi, probeer dan om dit te hou by wat in die RFC is.

Aanbeveel: