IRC Botu Nasıl Geliştirilir: 12 Adım (Resimlerle)

İçindekiler:

IRC Botu Nasıl Geliştirilir: 12 Adım (Resimlerle)
IRC Botu Nasıl Geliştirilir: 12 Adım (Resimlerle)

Video: IRC Botu Nasıl Geliştirilir: 12 Adım (Resimlerle)

Video: IRC Botu Nasıl Geliştirilir: 12 Adım (Resimlerle)
Video: Bu GMAIL İPUCUNU Bilmeyen Çok Şey Kaybeder ❗❗❗ 2024, Mart
Anonim

İnternet Geçişli Sohbet'te (IRC) bulunduysanız, muhtemelen bir noktada bir botla karşılaşmışsınızdır. Botlar, bir insanın yaptığı gibi bir ağa bağlanan bağımsız programlar veya komut dosyalarıdır. Kullanıcı komutlarına yanıt verecek ve hatta sohbet edecek şekilde programlanabilirler. Bu kılavuzda, bir IRC botu oluşturmak için seçeneklerinizin neler olduğunu ve sıfırdan nasıl bir bot oluşturacağınızı bulabilirsiniz.

adımlar

Yöntem 1/2: Seçenekleri Değerlendirme

Bir IRC Botu Geliştirme Adım 1
Bir IRC Botu Geliştirme Adım 1

Adım 1. Bir istemci komut dosyası yüklemeyi düşünün

Bazen sadece basit bir görevin yapılmasını istersiniz ve bunun bağımsız bir program olmasını istemezsiniz. Bu durumda, bir IRC istemcisine bir komut dosyası ekleyebilirsiniz. Bu, sağlam bir komut dosyası oluşturma motoruna ve çok çeşitli kullanılabilir komut dosyalarına sahip olan mIRC ile yapmak oldukça yaygındır. Bu en kolay seçenektir ve çok fazla veya herhangi bir programlama deneyiminiz yoksa şiddetle tavsiye edilir. Bu kılavuzun geri kalanı için talimatlar, takip etmek için biraz bilgisayar programlama bilgisi gerektirir.

Bir IRC Bot Adım 2 geliştirin
Bir IRC Bot Adım 2 geliştirin

Adım 2. Botunuz için önceden var olan bir kod tabanı düşünün

Kendi özelleştirilmiş botunuzu hızlı bir şekilde kurmanıza yardımcı olabilecek birçok açık kaynaklı ve ücretsiz program bulunmaktadır. Böyle bir örnek, hala bakımı yapılan en eski IRC botu olan Eggdrop'tur.

Bir IRC Botu Adım 3 geliştirin
Bir IRC Botu Adım 3 geliştirin

Adım 3. Kendi botunuzu yazmayı düşünün

Bir programlama dilinde yollarını zaten bilen ileri düzey IRC kullanıcıları ve geliştiriciler için bu harika bir seçenektir. Soket desteği olduğu sürece hemen hemen istediğiniz herhangi bir dili kullanabilirsiniz, ancak popüler olanlar arasında Python, Lua, PHP, C ve Perl bulunur. Bunların hiçbirini bilmiyorsanız ama başka bir dil biliyorsanız, sorun değil. Genellikle web'de istediğiniz herhangi bir dilde örnekler bulabilirsiniz. Bu makale için PHP kullanımını göstereceğiz. PHP'yi kullanmak için bilgisayarınızda veya sunucunuzda PHP-CLI'nin kurulu olması gerekir.

  • PHP, php.net'ten indirilebilir
  • PHP betikleri komut satırından çalıştırılabilir. Ek bilgi ve PHP kullanımıyla ilgili yardım için bu PHP kılavuz sayfasına bakın.

Yöntem 2/2: Kendi Botunuzu Geliştirme

Bir IRC Botu 4. Adım Geliştirin
Bir IRC Botu 4. Adım Geliştirin

Adım 1. Bağlantı ayrıntılarını toplayın

Ağa başarılı bir şekilde bağlanmak için aşağıdaki bilgileri almanız gerekir.

  • sunucu: IRC'ye bağlanmak için kullanılan sunucunun etki alanı adı, örneğin

    sohbet.freenode.net

  • Liman: Çoğu durumda, bu 6667'dir, ancak emin değilseniz, kendi IRC istemcinizi veya ağın web sitesini kontrol edin.
  • Takma ad: Botunuzun kullanması gereken takma ad. Bazı özel karakterlere genellikle izin verilmediğini unutmayın (@#!~).
  • kimlik: Birisi şu şekilde bir WHOIS gerçekleştirdiğinde, ident alanı takma addan sonra görünür:

    takma ad!ident@hostname

  • GECOS: Bu alan genellikle bir kullanıcının gerçek adını veya botun genel bir tanımını içerir, ancak oraya istediğinizi koyabilirsiniz.
  • Kanal: Genellikle botunuzun bir veya daha fazla kanalda bulunmasını istersiniz. Çoğu ağda, bunların önüne '#' eklenir, ancak bu başka bir şey olabilir.
Bir IRC Bot Adımı 5 geliştirin
Bir IRC Bot Adımı 5 geliştirin

Adım 2. Komut dosyanızdaki yapılandırmayı başlatın

Bunu yapmanın en temel yolu, birkaç değişkeni yukarıdaki yapılandırma adlarına göre adlandırmaktır. Bunları ayrıca bir yapılandırma dosyasında saklayabilir ve ayrıştırabilirsiniz, ancak şimdilik sadece mutlak gerekliliklere bağlı kalacağız.

Bir IRC Bot Adım 6 Geliştirin
Bir IRC Bot Adım 6 Geliştirin

Adım 3. Ağa bağlanın

Bunu yapmak için, belirtilen bağlantı noktasında sunucuya bir soket açmanız gerekir. Bağlantının herhangi bir nedenle başarısız olması durumunda, bu bölüme bazı hata işleme kodları da eklemelisiniz. Bu durumda PHP, hatayı etkili bir şekilde ele almak için bize bazı düzgün işlevler sağlar.

Bir IRC Bot Adım 7 geliştirin
Bir IRC Bot Adım 7 geliştirin

Adım 4. Botunuzu kaydedin

Bu, NickServ'e kaydolmak değil, sunucuya takma adınızı, kimliğinizi ve GECOS'unuzu sağlamak anlamına gelir. Bunu yapmak için, sunucuya NICK ve USER komutlarını, ardından bir satır başı ve yeni satır yazmanız yeterlidir. Bunu tam olarak gösterildiği gibi yapmanız zorunludur, çünkü IRC protokolünün belirtimi olan RFC1459'da bu şekilde belirtilir.

Ortadaki iki parametrenin (bu durumda * ve 8) belirtilmesi gerektiğini, ancak sunucu tarafından yok sayıldığını unutmayın. Bu ikisi, doğrudan bağlanan bir istemci tarafından değil, yalnızca bağlantılı sunucular arasında kullanılır

Bir IRC Bot Adımı 8 Geliştirin
Bir IRC Bot Adımı 8 Geliştirin

Adım 5. Bir döngü kullanarak soketten veri almaya devam edin

Bir döngü kullanmadıysanız, komut dosyanız hemen sonlandırılır ve bot temelde işe yaramaz olur. Bağlantıda kalmak için sunucudan veri almanız, akışta istediğiniz herhangi bir girişi kontrol etmeniz ve varsa buna yanıt vermeniz gerekir. Burada, bizim için mevcut herhangi bir veriyi almak için socket_read() kullanarak veri alıyoruz. Varsa, döngüde ne varsa onu yapmaya devam ediyoruz. Neler olup bittiğini botun bakış açısından görebilmeniz için ham verileri konsola göndermek de yararlı olabilir.

Bir IRC Bot Adımı 9 geliştirin
Bir IRC Bot Adımı 9 geliştirin

Adım 6. Bir ping işleyicisi yazın

Bu önemli. Ping'lere zamanında yanıt vermezseniz, sunucu bağlantınızı kesecektir. Önce bununla ilgilenelim. Sunucudan gönderildiğinde ping'ler şöyle görünür:

PING:rajaniemi.freenode.net

. Sunucunun adını ':' den sonra koyması gerekmez, istediğini sağlayabilir. PONG kullanmak dışında, sunucunun söylediklerini tam olarak *tekrarlamalısınız*.

Bir IRC Bot Adımı 10 Geliştirin
Bir IRC Bot Adımı 10 Geliştirin

Adım 7. Kanallarınıza katılın

Tamam, ağa bağlanan ve ping'lere yanıt veren, ancak bunun dışında hiçbir şey yapmayan bir botumuz var. İnsanların botunuzu görebilmesi ve kullanabilmesi için bir kanalda olması gerekir (aksi takdirde özel mesajlara cevap vermesini söylemeniz gerekir).

  • Bunu yapmak için 376 veya 422 sunucu durum kodlarını kontrol edeceğiz. 376, MOTD'nin (günün mesajı) bittiği anlamına gelir. 422, gönderilecek herhangi bir MOTD olmadığı anlamına gelir. Bu MOTD, bağlandığınızda sunucunun gönderdiği bir şeydir, ancak kanallara ne zaman katılmaya başlayabileceğimiz için iyi bir göstergedir.
  • Bir JOIN komutu vermeniz gerekecek. Bu komutu, virgülle ayrılmış bir veya daha fazla kanal izleyebilir.
  • Sunucunun gönderdiği verilerin uygun şekilde boşluklarla sınırlandırıldığına dikkat edin. Bu şekilde verileri bölebilir ve bir dizi indeksi kullanarak referans verebiliriz.
Bir IRC Bot Adımı 11 geliştirin
Bir IRC Bot Adımı 11 geliştirin

Adım 8. Kanal mesajlarına yanıt verin

Şimdi eğlenceli kısım için. Botunuz kanala katıldı, artık onu istediğiniz gibi kullanabilirsiniz. @moo adında bir örnek komut oluşturalım.

  • Mesajların başladığı yere dikkat edin (bu hem kanallar hem de özel mesajlar için geçerlidir). Hep aynı yerdedir.
  • Parçalanmış verileri tekrar bir araya getirerek ($d) boşluk içeren komutları işleyebilirsiniz. Bu, bu makalenin kapsamı dışındadır.
  • Hedef bir kanalsa (#botters-test gibi), o zaman buna yanıt verirsiniz. Bu özel bir mesajsa, bu bit botunuzun takma adı olacaktır! Daha sonra, sizin değil, gönderenin takma adını kullanarak yanıt vermelisiniz (aksi takdirde kendi kendinize konuşuyor olurdunuz ve bu çok saçma).
Bir IRC Bot Adımı Geliştirin 12
Bir IRC Bot Adımı Geliştirin 12

Adım 9. Botunuzu uzatın

Yukarıdaki uygulamayı kullanarak birçok yeni özellik ekleyebilirsiniz. Diğer birçok özelliğin yanı sıra, operasyonları yönetme, tekmeleme ve yasaklama, konuyu belirleme gibi IRC ağına verilebilecek başka birçok komut vardır.

İpuçları

  • "/me" komutunun sonucunu, mesajlarınızı şu şekilde öneklendirerek üretebilirsiniz:

    • PRIVMSG #channel:\001İŞLEM metni burada\001.
    • 001, ASCII karakter 1 anlamına gelir ve çift tırnaklı bir PHP dizesinde bu şekilde yorumlanır. Alternatif olarak, kullanabilirsiniz

      chr(1)

    • dize dışında.
  • Renkler, bir mesajda "\003" (ASCII kodu 3) ön eki ve ardından bir renk için bir sayı getirilerek üretilebilir. 0 = beyaz, 1 = siyah, 2 = mavi, 3 = yeşil, 4 = kırmızı […]. Daha fazla renk için mIRC'nin sayfasına bakın.
  • Nezaket gereği, botunuzu çevrimiçi duruma getirmeden önce kanal sahiplerinin ve IRC operatörlerinin onayını alın. Tüm ağlar ve kanallar, iyi niyetli olanlar da dahil olmak üzere, botlara karşı hoş geldiniz politikasına sahip değildir.
  • Bazı IRC arka plan programları, protokolün özelliklerinin ötesine geçer ve diğer özellikleri uygular. Belirli bir ağ için kullanıyorsanız, protokollerini biliyorsanız kesinlikle bu özelliklerden yararlanabilirsiniz. Ancak, botunuzun birkaç ağda dağıtılmasını istiyorsanız, bunu RFC'de olana kadar tutmaya çalışın.

Önerilen: