Internet Relay Chat'te (IRC) bulunduysanız, muhtemelen bir noktada bir botla karşılaşmışsınızdır. Botlar, bir ağa bir insanın yapacağı şekilde bağlanan bağımsız programlar veya betiklerdir. Kullanıcı komutlarına veya hatta sohbete yanıt verecek şekilde programlanabilirler. Bu kılavuzda, bir IRC botu oluşturmak için seçeneklerinizin ne olduğunu ve sıfırdan nasıl oluşturulacağını bulabilirsiniz.
Adımlar
Yöntem bir 2: Seçenekleri Değerlendirme
- bir Bir istemci komut dosyası kurmayı 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. Bunu yapmak oldukça yaygındır mIRC , güçlü bir komut dosyası oluşturma motoruna ve çok çeşitli kullanılabilir komut dosyalarına sahip. Bu en kolay seçenektir ve çok fazla veya hiç programlama deneyiminiz yoksa şiddetle tavsiye edilir. Bu kılavuzun geri kalanı için, talimatların takip edilmesi için bazı bilgisayar programlama bilgisi gerekir.
- 2 Botunuz için önceden var olan bir kod tabanını düşünün. Kendi özelleştirilmiş botunuzu hızlı bir şekilde kurmanıza yardımcı olabilecek birçok açık kaynak ve ücretsiz program vardır. Böyle bir örnek Yumurta damlası , en eski IRC botu hala bakımı yapılıyor.
- 3 Kendi botunuzu yazmayı düşünün. Bir programlama dilini zaten bilen gelişmiş IRC kullanıcıları ve geliştiricileri için bu harika bir seçenektir. Soket desteği olduğu sürece istediğiniz herhangi bir dili kullanabilirsiniz, ancak popüler olanlar Python, Lua, PHP, C ve Perl'dir. Bunlardan hiçbirini bilmiyorsanız ama başka bir dil biliyorsanız, bu sorun değil. Web'de genellikle istediğiniz 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 şuradan indirilebilir: php.net
- PHP betikleri komut satırından çalıştırılabilir. PHP kullanımıyla ilgili ek bilgi ve yardım için bkz. bu PHP kılavuz sayfası .
Yöntem 2 2: Kendi Botunuzu Geliştirmek
- bir 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 alan adı, örneğin
chat.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 aşağıdaki gibi bir WHOIS gerçekleştirdiğinde kimlik alanı takma addan sonra görünür:
nickname!ident@hostname
- GECOS : Bu alan tipik olarak bir kullanıcının gerçek adını veya botun genel bir açıklamasını tutar, ancak oraya istediğinizi koyabilirsiniz.
- Kanal : Genellikle botunuzun bir veya daha fazla kanalda bulunmasını istersiniz. Çoğu ağda, bunların başında '#' bulunur ancak başka bir şey de olabilir.
- Sunucu : IRC'ye bağlanmak için kullanılan sunucunun alan adı, örneğin
- 2 Komut dosyanızdaki yapılandırmayı başlatın. Bunu yapmanın en temel yolu, yukarıdaki yapılandırma adlarına göre birkaç değişkeni 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.
- 3 Ağa bağlanın. Bunu yapmak için, belirtilen bağlantı noktasındaki sunucuya bir soket açmanız gerekir. Ayrıca, bağlantının herhangi bir nedenle başarısız olması durumunda, bu bölüme bazı hata işleme kodunu da eklemelisiniz. Bu durumda PHP, hatayı etkili bir şekilde ele almak için bize bazı düzgün işlevler sağlar.
- 4 Botunuzu kaydedin. Bu, sunucuya takma adınızı, kimlik bilgilerinizi ve GECOS'unuzu sağlamak anlamına gelir, değil NickServ'e kaydolma. Bunu yapmak için, NICK ve USER komutlarını sunucuya yazın, ardından bir satır başı ve satırsonu yazın. Bunu tam olarak gösterildiği gibi yapmanız zorunludur, çünkü IRC protokolünün özelliği olan RFC1459'da bu şekilde belirtilmiştir.
- Ortadaki iki parametrenin (bu durumda * ve 8) belirtilmesi gerektiğini, ancak bunların sunucu tarafından göz ardı edildiğini 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.
- 5 Bir döngü kullanarak soketten veri almaya devam edin. Bir döngü kullanmadıysanız, betiğiniz hemen sona erer ve bot temelde işe yaramaz olur. Bağlı kalmak için sunucudan veri almanız, akışta istediğiniz herhangi bir girişi kontrol etmeniz ve eğer öyleyse yanıt vermeniz gerekir. Burada, kullanabileceğimiz herhangi bir veriyi almak için socket_read () kullanarak verileri topluyoruz. Varsa, döngüde ne varsa yapmaya devam ederiz. İşlenmemiş verileri konsola çıkarmak da yararlı olabilir, böylece botun bakış açısından neler olup bittiğini görebilirsiniz.
- 6 Bir ping işleyicisi yazın. Bu önemli. Pinglere zamanında yanıt vermezseniz, sunucu bağlantınızı kesecektir. Önce bununla ilgilenelim. Sunucudan gönderildiğinde pingler şöyle görünür:
PING :rajaniemi.freenode.net
. Sunucunun adını ':' ifadesinden sonra koyması gerekmez, istediği her şeyi sağlayabilir. PONG kullanımı dışında sunucunun söylediklerini tam olarak tekrar etmelisiniz *. - 7 Kanallarınıza katılın. Tamam, ağa bağlanan ve pinglere yanıt veren, ancak başka türlü hiçbir şey yapmayan bir botumuz var. İnsanların botunuzu görmesi ve kullanması için bir kanalda olması gerekir (aksi takdirde özel mesajlara yanıt 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 MOTD olmadığı anlamına gelir. MOTD, bağlandığınızda sunucunun gönderdiği bir şeydir, ancak kanallara katılmaya ne zaman başlayabileceğimiz için iyi bir göstergedir.
- Bir JOIN komutu vermeniz gerekecek. Bu komutun ardından virgülle ayrılmış bir veya daha fazla kanal gelebilir.
- Sunucunun gönderdiği verilerin boşluklarla uygun şekilde sınırlandırıldığına dikkat edin. Bu şekilde veriyi bölebilir ve bir dizi indeksi kullanarak ona referans verebiliriz.
- 8 Kanal mesajlarına yanıt verin. Şimdi işin eğlenceli kısmı. Botunuz kanala katıldı, artık istediğiniz şey için kullanabilirsiniz. @Moo adında bir örnek komut oluşturalım.
- Mesajların başladığı yerdeki farkı not edin (bu hem kanallar hem de özel mesajlar için geçerlidir). Hep aynı yerdedir.
- Yığınlanmış verileri tekrar birbirine ekleyerek ($ d) içlerinde boşluklar olan komutları işleyebilirsiniz. Bu, bu makalenin kapsamı dışındadır.
- Hedef bir kanal ise (# botters-test gibi), o zaman bunu yanıtlarsınız. Özel bir mesajsa, bu bit botunuzun takma adı olacaktır! Daha sonra, gönderenin takma adını kullanarak yanıt vermelisiniz, sizin değil (aksi takdirde kendinizle konuşursunuz ve bu çok saçma).
- 9 Botunuzu genişletin. Yukarıdaki uygulamayı kullanarak birçok yeni özellik ekleyebilirsiniz. IRC ağına, diğer birçok özelliğin yanı sıra, operasyonları yönetmek, tekmelemek ve yasaklamak, konuyu belirlemek gibi verilebilecek birçok başka komut vardır. İlan
Topluluk Soru-Cevap
Arama Yeni Soru Ekle- Soru Bunları not defteri + 'ya ekledikten sonra, bu kodları nereye ekleyeceğim? 8lack uçan Bunları PHP'yi destekleyen bir web sunucusuna (Apache gibi) koyun. XXAMP'ı yerel bilgisayarınıza kurabilir veya başka bir web sunucusunda barındırabilirsiniz.
İlan
İpuçları
- Mesajlarınızın önüne şu şekilde '/ me' komutunun sonucunu verebilirsiniz:
- PRIVMSG #kanal: 001ACTION metni buraya 001 .
- 001, ASCII karakter 1 anlamına gelir ve çift tırnaklı bir PHP dizgesinde olduğu gibi yorumlanacaktır. Alternatif olarak
chr(1)
dizenin dışında.
- Renkler, bir mesajda ' 003' (ASCII kodu 3) ön eki ve ardından bir renk numarası ile üretilebilir. 0 = beyaz, 1 = siyah, 2 = mavi, 3 = yeşil, 4 = kırmızı [...]. Görmek mIRC Daha fazla renk için 'in sayfası.
- Nezaket gereği, botunuzu çevrimiçi duruma getirmeden önce kanal sahiplerinin ve IRC operatörlerinin onayını alın. Tüm ağların ve kanalların botlara karşı iyi niyetli olanlar da dahil olmak üzere hoş bir politikası yoktur.
- Bazı IRC artalan süreçleri 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. Bununla birlikte, botunuzun birkaç ağda konuşlandırılmasını istiyorsanız, onu RFC'de tutmaya çalışın.
Reklam Bir İpucu Gönderin Tüm ipucu gönderimleri yayınlanmadan önce dikkatlice incelenir İncelenmesi için bir ipucu gönderdiğiniz için teşekkürler!