İnternet Relay Chat -da (IRC) olmusunuzsa, çox güman ki, bir nöqtədə bir botla qarşılaşmısınız. Botlar, bir insanın olduğu kimi bir şəbəkəyə bağlanan müstəqil proqramlar və ya skriptlərdir. İstifadəçi əmrlərinə cavab vermək və ya hətta söhbət etmək üçün proqramlaşdırıla bilərlər. Bu təlimatda, IRC botu qurmaq üçün seçimlərinizi və sıfırdan necə qurulacağını tapa bilərsiniz.
Addımlar
Metod 1 /2: Seçimlərin qiymətləndirilməsi
Addım 1. Bir müştəri skriptinin quraşdırılmasını düşünün
Bəzən sadə bir işin yerinə yetirilməsini istəyirsən və müstəqil bir proqram olmasını istəmirsən. Bu vəziyyətdə, bir IRC müştərisinə bir skript əlavə edə bilərsiniz. Bu, möhkəm bir skript mühərrikinə və çox sayda mövcud skriptə malik olan mIRC ilə etmək olduqca yaygındır. Bu ən asan seçimdir və çox və ya hər hansı bir proqramlaşdırma təcrübəniz yoxdursa çox tövsiyə olunur. Bu təlimatın qalan hissəsi üçün təlimatlara riayət etmək üçün kompüter proqramlaşdırması haqqında bəzi biliklər lazımdır.
Addım 2. Botunuz üçün əvvəlcədən mövcud olan bir kod bazasını nəzərdən keçirin
Xüsusi botunuzu tez bir zamanda qurmağa kömək edə biləcək bir çox açıq mənbə və pulsuz proqram var. Belə bir nümunə, hələ də saxlanılan ən qədim IRC botu olan Eggdropdur.
Addım 3. Öz botunuzu yazmağı düşünün
İnkişaf etmiş IRC istifadəçiləri və proqramlaşdırma dilini artıq bilən inkişaf etdiricilər üçün bu əla seçimdir. Soket dəstəyi olduğu müddətdə istədiyiniz hər hansı bir dildən istifadə edə bilərsiniz, lakin populyar olanlar arasında Python, Lua, PHP, C və Perl var. Bunlardan heç birini bilmirsinizsə, amma başqa bir dil bilirsinizsə, bu problem deyil. Ümumiyyətlə vebdə istədiyiniz dildə nümunələr tapa bilərsiniz. Bu məqalə üçün PHP istifadə edəcəyimizi nümayiş etdirəcəyik. PHP-dən istifadə etmək üçün kompüterinizdə və ya serverinizdə PHP-CLI yüklü olmalısınız.
- PHP php.net saytından yüklənə bilər
- PHP skriptləri əmr satırından icra oluna bilər. Əlavə məlumat və PHP istifadə etmək üçün bu PHP təlimat səhifəsinə baxın.
Metod 2 /2: Öz Botunuzu İnkişaf etdirin
Addım 1. Bağlantı detallarını toplayın
Şəbəkəyə uğurla qoşulmaq üçün aşağıdakı məlumatları əldə etməlisiniz.
-
Server: IRC -yə qoşulmaq üçün istifadə olunan serverin domen adı
chat.freenode.net
- Liman: Əksər hallarda bu 6667 -dir, amma əmin deyilsinizsə, öz IRC müştərinizi və ya şəbəkənin veb saytını yoxlayın.
- Ləqəb: Botunuzun istifadə etməli olduğu ləqəb. Bəzi xüsusi simvollara ümumiyyətlə icazə verilmədiyini unutmayın (@#! ~).
-
Ident: Kimsə belə bir WHOIS həyata keçirəndə, identifikasiya sahəsi ləqəbdən sonra görünür:
ləqəb! ident@hostname
- GECOS: Bu sahədə adətən bir istifadəçinin əsl adı və ya botun ümumi təsviri var, ancaq istədiyinizi ora yerləşdirə bilərsiniz.
- Kanal: Adətən botunuzun bir və ya daha çox kanalda olmasını istəyirsiniz. Əksər şəbəkələrdə bunlara '#' prefiksi qoyulur, amma başqa bir şey ola bilər.
Addım 2. Skriptinizdə konfiqurasiyanı başladın
Bunun ən əsas yolu yuxarıdakı konfiqurasiya adlarına uyğun olaraq bir neçə dəyişənin adlandırılmasıdır. Onları bir konfiqurasiya faylında saxlaya və təhlil edə bilərsiniz, ancaq hələlik mütləq ehtiyacları yerinə yetirəcəyik.
Addım 3. Şəbəkəyə qoşulun
Bunu etmək üçün, göstərilən portdakı serverə bir yuva açmalısınız. Əlaqənin hər hansı bir səbəbdən uğursuz olması halında bu hissəyə bəzi səhv işləmə kodu da əlavə etməlisiniz. Bu vəziyyətdə, PHP bizə səhvləri effektiv şəkildə həll etmək üçün bəzi səliqəli funksiyalar təqdim edir.
Addım 4. Botunuzu qeydiyyatdan keçirin
Bu, NickServ -də qeydiyyatdan keçmədən, ləqəbinizin, identifikasiyanızın və GECOS -un serverə verilməsi deməkdir. Bunu etmək üçün serverə NICK və USER əmrlərini yazın, ardınca bir vaqon geri dönmə və yeni xətt. Bunu tam olaraq göstərildiyi kimi etməyiniz vacibdir, çünki IRC protokolunun spesifikasiyası olan RFC1459 -da belədir.
Nəzərə alın ki, orta iki parametr (bu halda * və 8) göstərilməlidir, lakin onlar server tərəfindən nəzərə alınmır. Bu ikisi birbaşa əlaqəli müştəri tərəfindən deyil, yalnız bağlı serverlər arasında istifadə olunur
Addım 5. Bir döngə istifadə edərək məlumatları yuvadan əldə etməyə davam edin
Bir döngə istifadə etməsəniz, skriptiniz dərhal dayandırılacaq və bot əsasən yararsız olacaq. Bağlı qalmaq üçün serverdən məlumat götürmək, istədiyiniz axında hər hansı bir giriş olub olmadığını yoxlamaq və əgər varsa cavab vermək lazımdır. Burada, əldə edə biləcəyimiz hər hansı bir məlumatı əldə etmək üçün socket_read () istifadə edərək məlumatları alırıq. Varsa, döngədə olan hər şeyi etməyə davam edirik. Xam məlumatları konsola çıxarmaq da faydalı ola bilər ki, botun baxımından nələrin baş verdiyini görə biləsiniz.
Addım 6. Ping işləyicisi yazın
Bu vacibdir. Pinglərə vaxtında cavab verməsəniz, server əlaqənizi kəsəcək. Gəlin əvvəlcə bununla maraqlanaq. Pinglər serverdən göndərildikdə belə görünür:
PING: rajaniemi.freenode.net
. Serverin adını ':' işarəsindən sonra qoymaq məcburiyyətində deyil, istədiyini təmin edə bilər. PONG istifadə etməmək istisna olmaqla, serverin dediklərini tam olaraq təkrarlamalısınız.
Addım 7. Kanallarınıza qoşulun
Tamam, buna görə şəbəkəyə qoşulan və pinqlərə cavab verən, amma başqa heç nə etməyən bir botumuz var. İnsanların botunuzu görməsi və istifadə etməsi üçün kanalda olmalıdır (əks halda şəxsi mesajlara cavab verməsini söyləməlisiniz).
- Bunu etmək üçün 376 və ya 422 server status kodlarını yoxlayacağıq. 376, MOTD (günün mesajı) bitmiş deməkdir. 422 göndərmək üçün heç bir MOTD olmadığı deməkdir. Bu MOTD, server qoşulduqda göndərdiyi bir şeydir, ancaq kanallara qoşulmağa başlaya biləcəyimiz üçün yaxşı bir göstəricidir.
- JOIN əmrini verməlisiniz. Bu əmri vergüllə ayrılmış bir və ya daha çox kanal izləyə bilər.
- Serverin göndərdiyi məlumatların boşluqlarla rahat şəkildə ayrıldığına diqqət yetirin. Bu şəkildə məlumatları bölmək və bir sıra indeksi istifadə edərək ona istinad edə bilərik.
Addım 8. Kanal mesajlarına cavab verin
İndi əyləncəli hissəyə. Botunuz kanala qoşuldu, buna görə də indi istədiyiniz kimi istifadə edə bilərsiniz. @Moo adlı bir nümunə əmri yaradaq.
- Mesajların başladığı ofseti qeyd edin (bu həm kanallara, həm də şəxsi mesajlara aiddir). Həmişə eyni yerdədir.
- Yığılmış məlumatları ($ d) yenidən birləşdirərək boşluqları olan əmrləri idarə edə bilərsiniz. Bu məqalənin əhatə dairəsindən kənardır.
- Hədəf bir kanaldırsa (məsələn #botters-testi), buna cavab verirsiniz. Şəxsi bir mesajdırsa, bu bit botunuzun ləqəbi olacaq! Daha sonra sizin deyil, göndərənin ləqəbini istifadə edərək cavab verməlisiniz (əks halda özünüzlə danışacaqsınız və bu sadəcə axmaqlıqdır).
Addım 9. Botunuzu genişləndirin
Yuxarıdakı tətbiqdən istifadə edərək bir çox yeni xüsusiyyət əlavə edə bilərsiniz. IRC şəbəkəsinə verilə biləcək bir çox başqa əmr var, məsələn, əməliyyatları idarə etmək, təpikləmək və qadağan etmək, mövzunu təyin etmək və digər xüsusiyyətlər.
İpuçları
-
Mesajlarınızı belə bir ön sözlə yazaraq "/me" əmrinin nəticəsini çıxara bilərsiniz:
- PRIVMSG #kanalı: / 001 ƏMƏLİYYAT mətni burda / 001.
-
001, ASCII xarakter 1 deməkdir və ikiqat sitatlı PHP sətirində belə şərh ediləcək. Alternativ olaraq istifadə edə bilərsiniz
chr (1)
- telin xaricində.
- Rənglər, "\ 003" (ASCII kodu 3) və sonra bir rəng üçün bir rəqəm əlavə etməklə bir mesajda istehsal edilə bilər. 0 = ağ, 1 = qara, 2 = mavi, 3 = yaşıl, 4 = qırmızı […]. Daha çox rəng üçün mIRC səhifəsinə baxın.
- Nəzakət olaraq, botunuzu internetə qoymadan əvvəl kanal sahiblərinin və IRC operatorlarının razılığını alın. Bütün şəbəkələr və kanallar botlara, hətta yaxşı davrananlara qarşı xoş bir siyasət yürütmür.
- Bəzi IRC daemonları protokolun xüsusiyyətlərindən kənara çıxır və digər funksiyaları həyata keçirir. Xüsusi bir şəbəkə üçün hazırlayırsınızsa, protokollarını bilirsinizsə, əlbəttə ki, bu xüsusiyyətlərdən istifadə edə bilərsiniz. Botunuzun bir neçə şəbəkədə yerləşdirilməsini istəyirsinizsə, onu RFC -də olanlara saxlamağa çalışın.