Paano Bumuo ng isang IRC Bot: 12 Hakbang (na may Mga Larawan)

Talaan ng mga Nilalaman:

Paano Bumuo ng isang IRC Bot: 12 Hakbang (na may Mga Larawan)
Paano Bumuo ng isang IRC Bot: 12 Hakbang (na may Mga Larawan)

Video: Paano Bumuo ng isang IRC Bot: 12 Hakbang (na may Mga Larawan)

Video: Paano Bumuo ng isang IRC Bot: 12 Hakbang (na may Mga Larawan)
Video: Bagong Paraan para maRecover pa ang Facebook Account without Email o Phone Number 2024, Abril
Anonim

Kung nakarating ka sa Internet Relay Chat (IRC), malamang na nakatagpo ka ng isang bot sa ilang mga punto. Ang bot ay mga independiyenteng programa o script na kumokonekta sa isang network sa parehong paraan na nais ng isang tao. Maaari silang mai-program upang tumugon sa mga utos ng gumagamit o kahit makipag-chat. Sa gabay na ito, mahahanap mo kung ano ang iyong mga pagpipilian para sa pagbuo ng isang IRC bot pati na rin kung paano bumuo ng isa mula sa simula.

Mga hakbang

Paraan 1 ng 2: Mga Pagpipilian sa Pagsusuri

Bumuo ng isang IRC Bot Hakbang 1
Bumuo ng isang IRC Bot Hakbang 1

Hakbang 1. Isaalang-alang ang pag-install ng isang client script

Minsan nais mo lamang ang isang simpleng gawain na tapos na at hindi mo nais na maging isang malayang programa. Sa kasong iyon, maaari kang maglakip ng isang script sa isang client ng IRC. Ito ay medyo karaniwang ginagawa sa mIRC, na may isang matatag na scripting engine at iba't ibang magagamit na mga script. Ito ang pinakamadaling pagpipilian at lubos na inirerekomenda kung wala kang marami o anumang karanasan sa programa. Para sa natitirang gabay na ito, ang mga tagubilin ay nangangailangan ng kaunting kaalaman sa pagsunod sa programa ng computer.

Bumuo ng isang IRC Bot Hakbang 2
Bumuo ng isang IRC Bot Hakbang 2

Hakbang 2. Isaalang-alang ang isang paunang mayroon ng codebase para sa iyong bot

Mayroong maraming mga bukas na mapagkukunan at libreng mga programa na makakatulong sa iyo na mabilis na mai-set up ang iyong sariling na-customize na bot. Ang isang tulad halimbawa ay ang Eggdrop, ang pinakalumang bot ng IRC na pinapanatili pa rin.

Bumuo ng isang IRC Bot Hakbang 3
Bumuo ng isang IRC Bot Hakbang 3

Hakbang 3. Isaalang-alang ang pagsusulat ng iyong sariling bot

Para sa mga advanced na gumagamit ng IRC at developer na alam na ang kanilang paraan sa paligid ng isang wika sa programa, ito ay isang mahusay na pagpipilian. Maaari mong gamitin ang halos anumang wika na gusto mo hangga't mayroon itong suporta sa socket, ngunit ang mga sikat na gagamitin kasama ang Python, Lua, PHP, C, at Perl. Kung hindi mo alam ang anuman sa mga ito ngunit may alam kang ibang wika, hindi iyon problema. Karaniwan kang makakahanap ng mga halimbawa sa web sa anumang wika na gusto mo. Para sa artikulong ito, magpapakita kami ng paggamit ng PHP. Upang magamit ang PHP, kakailanganin mong magkaroon ng naka-install na PHP-CLI sa iyong computer o server.

  • Maaaring ma-download ang PHP mula sa php.net
  • Ang mga PHP script ay maaaring maipatupad mula sa linya ng utos. Para sa karagdagang impormasyon at tulong sa paggamit ng PHP, tingnan ang pahina ng manu-manong PHP na ito.

Paraan 2 ng 2: Pagbuo ng Iyong Sariling Bot

Bumuo ng isang IRC Bot Hakbang 4
Bumuo ng isang IRC Bot Hakbang 4

Hakbang 1. Ipunin ang mga detalye ng koneksyon

Kakailanganin mong makuha ang sumusunod na impormasyon upang matagumpay na makakonekta sa network.

  • Server: Ang domain name ng server na ginamit upang kumonekta sa IRC, tulad ng

    chat.freenode.net

  • Port: Sa karamihan ng mga kaso, ito ay 6667, ngunit kung hindi ka sigurado, suriin ang iyong sariling client ng IRC o website ng network.
  • Palayaw: Ang palayaw na dapat gamitin ng iyong bot. Tandaan na ang ilang mga espesyal na character ay karaniwang hindi pinapayagan (@ #! ~).
  • Ident: Lilitaw ang patlang na pagkakakilanlan pagkatapos ng palayaw kapag may gumaganap ng isang WHOIS tulad nito:

    palayaw! ident @ hostname

  • GECOS: Ang patlang na ito ay karaniwang nagtataglay ng tunay na pangalan ng isang gumagamit o isang pangkalahatang paglalarawan ng bot ngunit maaari mong ilagay doon ang anumang nais mo.
  • Channel: Karaniwan mong nais na ang iyong bot ay naroroon sa isa o higit pang mga channel. Sa karamihan ng mga network, ang mga ito ay pauna sa '#' ngunit maaaring iba ito.
Bumuo ng isang IRC Bot Hakbang 5
Bumuo ng isang IRC Bot Hakbang 5

Hakbang 2. Simulan ang pagsasaayos sa iyong script

Ang pinaka-pangunahing paraan upang gawin ito ay sa pamamagitan ng pagbibigay ng pangalan ng ilang mga variable ayon sa mga pangalan ng pagsasaayos sa itaas. Maaari mo ring iimbak ang mga ito sa isang config file at i-parse ang mga ito, ngunit sa ngayon ay mananatili lamang kami sa mga ganap na pangangailangan.

Bumuo ng isang IRC Bot Hakbang 6
Bumuo ng isang IRC Bot Hakbang 6

Hakbang 3. Kumonekta sa network

Upang magawa ito, kakailanganin mong buksan ang isang socket sa server sa tinukoy na port. Maaari ka ring magdagdag ng ilang code sa paghawak ng error sa bahaging ito kung sakaling mabigo ang koneksyon para sa anumang kadahilanan. Sa kasong ito, nagbibigay ang PHP sa amin ng ilang maayos na pagpapaandar upang mabisang hawakan ang error.

Bumuo ng isang IRC Bot Hakbang 7
Bumuo ng isang IRC Bot Hakbang 7

Hakbang 4. Irehistro ang iyong bot

Nangangahulugan ito na ang pagbibigay ng iyong palayaw, ident, at GECOS sa server, hindi nagrerehistro sa NickServ. Upang magawa ito, isulat lamang ang mga utos na NICK at USER sa server, na sinusundan ng isang pagbalik sa karwahe at newline. Ito ay kinakailangan na gawin mo ito nang eksakto tulad ng ipinakita, sapagkat iyan ay kung paano ito tinukoy sa RFC1459, ang detalye para sa IRC protocol.

Tandaan na ang gitnang dalawang mga parameter (sa kasong ito, * at 8) ay dapat na tinukoy, ngunit hindi sila pinansin ng server. Ang dalawang iyon ay ginagamit lamang sa pagitan ng mga naka-link na server, hindi ng isang direktang pagkonekta na kliyente

Bumuo ng isang IRC Bot Hakbang 8
Bumuo ng isang IRC Bot Hakbang 8

Hakbang 5. Panatilihin ang pagkuha ng data mula sa socket gamit ang isang loop

Kung hindi ka gumamit ng isang loop, ang iyong script ay agad na magwawakas at ang bot ay karaniwang walang silbi. Upang manatiling konektado, kailangan mong kumuha ng data mula sa server, suriin para sa anumang input sa stream na gusto mo, at tumugon dito kung gayon. Dito, kumukuha kami ng data gamit ang socket_read () upang makuha ang anumang data na magagamit para sa amin. Kung mayroon, patuloy kaming gumagawa ng anumang nasa loop. Maaaring maging kapaki-pakinabang na i-output din ang hilaw na data sa console upang makita mo kung ano ang nangyayari mula sa pananaw ng bot.

Bumuo ng isang IRC Bot Hakbang 9
Bumuo ng isang IRC Bot Hakbang 9

Hakbang 6. Sumulat ng isang ping handler

Ito ay mahalaga. Kung hindi ka tumugon sa mga ping sa isang napapanahong paraan, ididiskonekta ka ng server. Alagaan muna natin yan. Ganito ang hitsura ng mga ping kapag ipinadala mula sa server:

PING: rajaniemi.freenode.net

. Hindi ilalagay ng server ang pangalan nito pagkatapos ng ':', maaari nitong ibigay ang anumang nais nito. Dapat mong * ulitin ulit ang eksaktong sinabi ng server, maliban sa paggamit ng PONG.

Bumuo ng isang IRC Bot Hakbang 10
Bumuo ng isang IRC Bot Hakbang 10

Hakbang 7. Sumali sa iyong mga channel

Okay, kaya mayroon kaming bot na kumokonekta sa network at tumutugon sa mga ping, ngunit kung hindi man ay wala. Para makita at magamit ng mga tao ang iyong bot, dapat nasa isang channel ito (kung hindi man ay sasabihin mo ito upang tumugon sa mga pribadong mensahe).

  • Upang magawa ito, susuriin namin ang mga code ng katayuan ng server na 376 o 422. 376 ay nangangahulugang natapos na ang MOTD (mensahe ng araw). 422 nangangahulugang walang anumang MOTD na maipapadala. Ang MOTD na iyon ay isang bagay lamang na ipinapadala ng server kapag kumonekta ka, ngunit ito ay isang mahusay na tagapagpahiwatig kung kailan maaari naming simulang sumali sa mga channel.
  • Kakailanganin mong mag-isyu ng isang sumali sa utos. Ang utos na ito ay maaaring sundin ng isa o higit pang mga channel na pinaghihiwalay ng isang kuwit.
  • Pansinin na ang data na ipinapadala ng server ay maginhawa na delimitado ng mga puwang. Sa ganitong paraan maaari nating hatiin ang data at i-refer ito gamit ang isang index ng array.
Bumuo ng isang IRC Bot Hakbang 11
Bumuo ng isang IRC Bot Hakbang 11

Hakbang 8. Tumugon sa mga mensahe sa channel

Ngayon para sa kasiya-siyang bahagi. Sumali ang iyong bot sa channel, kaya maaari mo na itong magamit para sa gusto mo. Lumikha tayo ng isang halimbawa ng utos na tinatawag na @moo.

  • Tandaan ang offset kung saan nagsisimula ang mga mensahe (nalalapat ito sa parehong mga channel at pribadong mensahe). Palagi itong nasa parehong lugar.
  • Maaari mong hawakan ang mga utos na may mga puwang sa kanila sa pamamagitan ng pag-splice ng chunked data na magkasama ($ d). Lampas sa saklaw ng artikulong ito
  • Kung ang target ay isang channel (tulad ng # botters-test), pagkatapos ay tumugon ka doon. Kung ito ay isang pribadong mensahe, ang bit na ito ang palayaw ng iyong bot! Pagkatapos ay dapat kang tumugon gamit ang palayaw ng nagpadala, hindi sa iyo (kung hindi ka nakikipag-usap sa iyong sarili, at nakakaloko lamang iyon).
Bumuo ng isang IRC Bot Hakbang 12
Bumuo ng isang IRC Bot Hakbang 12

Hakbang 9. Palawakin ang iyong bot

Maaari kang magdagdag ng maraming mga bagong tampok gamit ang pagpapatupad sa itaas. Maraming iba pang mga utos na maaaring maibigay sa IRC network, tulad ng pamamahala ng mga op, pagsipa at pagbabawal, pagtatakda ng paksa, bukod sa maraming iba pang mga tampok.

Mga Tip

  • Maaari kang magawa ang resulta ng "/ me" na utos sa pamamagitan ng pag-unlapi ng iyong mga mensahe tulad nito:

    • PRIVMSG #channel: / 001ACTION teksto dito / 001.
    • Ang / 001 ay nangangahulugang ASCII character 1 at bibigyan ng kahulugan tulad ng isang doble na naka-quote na PHP string. Bilang kahalili, maaari mong gamitin

      chr (1)

    • sa labas ng string.
  • Maaaring magawa ang mga kulay sa isang mensahe sa pamamagitan ng pag-unlapi ng "\ 003" (ASCII code 3) na sinusundan ng isang numero para sa isang kulay. 0 = puti, 1 = itim, 2 = asul, 3 = berde, 4 = pula […]. Tingnan ang pahina ng mIRC para sa higit pang mga kulay.
  • Bilang isang bagay ng kabutihang loob, kumuha ng pahintulot ng mga may-ari ng channel at mga operator ng IRC bago dalhin ang iyong bot sa online. Hindi lahat ng mga network at channel ay may isang malugod na patakaran sa mga bot, kahit na ang mga mahusay na kumilos.
  • Ang ilang mga IRC daemon ay lampas sa mga pagtutukoy ng protokol at nagpapatupad ng iba pang mga tampok. Kung hinihimok mo ito para sa isang tukoy na network, tiyak na maaari mong magamit ang mga tampok na iyon kung alam mo ang tungkol sa kanilang protocol. Kung nais mong ma-deploy ang iyong bot sa maraming mga network, gayunpaman, subukang panatilihin ito sa kung ano ang nasa RFC.

Inirerekumendang: