IRC QUOTE ve RAW: Ham Protokol Komutları Göndermek
İçindekiler
IRC istemcileri, protokolün komutlarının çoğunu kendi komutları olarak sunar. Ancak protokol zaman içinde gelişti ve her istemci her komutu desteklemez. IRC quote ve raw komutları, bu boşluğu doldurur: Yazdığınız metni doğrudan sunucuya, hiçbir işlem yapmadan iletirler.
Kullanım
/quote JOIN #kanal
/raw MODE #kanal +o Ayse
/quote WHOIS Ayse Ayse
İstemciye göre komut adı quote veya raw olur; bazı istemciler ikisini de destekler. İşlev aynıdır: Yazdığınız metin, protokol komutu olarak sunucuya gönderilir.
Bu komutları kullanırken protokolün söz dizimine uymanız gerekir: Komut adları büyük harfle yazılır (zorunlu değildir ama gelenektir) ve parametreler protokolün beklediği sırada verilir.
Protokol Söz Dizimi
Ham komut gönderirken bilmeniz gereken temel kurallar:
Parametreler boşlukla ayrılır. Her boşluk yeni bir parametre başlatır.
Son parametre iki nokta ile başlar. Boşluk içeren bir metin (mesaj, konu, çıkış sebebi) son parametre olmalıdır ve başına iki nokta konur. Bu, protokolün en önemli kuralıdır:
/quote PRIVMSG #kanal :Bu bir mesajdir ve bosluk iceriyor
/quote TOPIC #kanal :Yeni kanal konusu
/quote QUIT :Gorusuruz
İki noktayı koymayı unutmak, mesajın yalnızca ilk kelimesinin gönderilmesine yol açar. Bu, ham komut kullanırken en sık yapılan hatadır.
Satır uzunluğu sınırlıdır. Protokolde bir satır, yaklaşık beş yüz karakterle sınırlıdır ve bu sınır gönderen bilgisini de kapsar. Pratikte güvenli sınır dört yüz karakterin altıdır.
Komut adları belirlidir. Protokolün tanımladığı komutları kullanmanız gerekir; keyfi bir metin göndermek sunucudan hata döndürür.
Ne Zaman Gerekir?
İstemci desteklemiyorsa: Yeni eklenmiş bir protokol özelliğini kullanmak istediğinizde, istemciniz henüz desteklemiyor olabilir.
Ağa özgü komutlar: Bazı ağlar, standart olmayan özel komutlar sunar. İstemciniz bunları tanımaz.
İstemci komutunun davranışı farklıysa: İstemciniz bir komutu göndermeden önce üzerinde işlem yapıyorsa ve siz ham hâlini göndermek istiyorsanız.
Services kısayolları: Bazı ağlarda services'e mesaj göndermenin özel komutları vardır ve istemciniz bunları desteklemiyorsa ham komutla gönderebilirsiniz.
Protokol öğrenirken: Protokolün nasıl çalıştığını anlamak için komutları elle göndermek çok öğreticidir.
Hata ayıklarken: Bir sorunun istemciden mi sunucudan mı kaynaklandığını anlamak için komutu doğrudan göndermek ayrım yapmanızı sağlar.
IRCv3 Özellikleri
Protokolün modern eklentileri olan IRCv3 özellikleri, istemci desteği gerektirir. Bir özellik istemciniz tarafından desteklenmiyorsa, ham komutlarla el yordamıyla kullanmak mümkündür ama pratik değildir: Özellik genellikle istemcinin mesajları farklı yorumlamasını da gerektirir.
Yine de yetenek müzakeresi gibi bazı IRCv3 işlemlerini ham komutlarla incelemek, protokolün nasıl çalıştığını öğrenmek için faydalıdır. Bkz. IRCv3 özellikleri.
Dikkat Edilmesi Gerekenler
Ne yaptığınızı bilin. Protokol belgelerini okumadan rastgele komut göndermek, beklenmedik sonuçlar doğurabilir.
Parola içeren komutlara dikkat. Ham komutla parola gönderiyorsanız, komutun yanlış pencereye yazılması riski vardır. Bu, parolanızın bir kanala düşmesi anlamına gelir.
Flood sınırlarına dikkat. Art arda çok sayıda ham komut göndermek, sunucunun flood korumasını tetikleyebilir.
Sunucu farklarını hesaplayın. Bir ağda çalışan bir komut, başka bir ağda bulunmayabilir.
Hata mesajlarını okuyun. Yanlış bir komut genellikle açıklayıcı bir hata döndürür. Bkz. IRC hata numerikleri.
Script ve Botlarda
Script ve bot yazarken ham komut göndermek yaygın bir pratiktir: İstemcinin komut katmanını atlayarak doğrudan protokol düzeyinde çalışmak, davranışı tam olarak kontrol etmenizi sağlar.
Botlar genellikle bütün iletişimi ham komutlarla yapar: Bir bot, istemci arayüzü olmadığı için doğrudan protokol konuşur. Eggdrop gibi botlarda mesaj gönderme komutları, arka planda ham protokol komutları üretir.
Script yazarken ham komut kullanmanın bir avantajı daha vardır: İstemcinin komutu değiştirmesini önler. Bazı istemciler, komutları göndermeden önce üzerinde işlem yapar ve bu her zaman istediğiniz davranış olmayabilir.
mIRC'te ham komut gönderme ve ham mesajları yakalama için mIRC raw eventleri yazımıza bakın.
Ham Mesajları İzlemek
Ham komut göndermenin tersi, sunucudan gelen ham mesajları izlemektir. Çoğu istemci, bu amaçla bir hata ayıklama penceresi sunar: Sunucuyla alışverilen bütün trafiği görürsünüz.
Bu, protokolü öğrenmenin ve sorun ayıklamanın en etkili yoludur: Hangi komutun gönderildiğini, sunucunun ne cevap verdiğini ve hangi sırayla olup bittiğini görürsünüz.
Önemli bir güvenlik notu: Bu çıktı, services'e gönderdiğiniz parolaları ve SASL kimlik bilgilerinizi de içerir. Çıktıyı kimseyle paylaşmayın; paylaşmanız gerekiyorsa parola içeren satırları silin.
Protokolü Öğrenmek
Ham komutlar, IRC protokolünü öğrenmenin en doğrudan yoludur. İstemcinizin arayüzünün arkasında ne olduğunu merak ediyorsanız, basit komutları elle göndermek çok öğreticidir.
Bir deneme olarak kanala mesaj göndermeyi, nick değiştirmeyi ve kanala girmeyi ham komutlarla yapmayı denerseniz, protokolün ne kadar basit olduğunu görürsünüz. IRC'nin kalıcılığının bir nedeni de bu basitliktir: Protokol, metin tabanlı ve okunabilir komutlardan oluşur.
Gerçek Bir Senaryo
Bir kullanıcı, ağının yeni sunduğu bir özelliği kullanmak istiyor ama istemcisi bu komutu tanımıyor. Ağın belgelerinde komutun söz dizimi veriliyor. Kullanıcı ham komut göndererek özelliği kullanıyor; işe yarıyor. Ancak boşluk içeren bir parametre gönderdiğinde yalnızca ilk kelime iletiliyor. Protokol kuralını öğreniyor: Boşluk içeren son parametrenin başına iki nokta koymak gerekiyor. Düzeltince komut doğru çalışıyor. Daha sonra bu komutu bir alias hâline getirip her seferinde ham komut yazmaktan kurtuluyor.
Ham Komutları Alias'a Dönüştürmek
Düzenli olarak aynı ham komutu gönderiyorsanız, bunu bir kısayol komutuna dönüştürmek zaman kazandırır ve yazım hatası riskini ortadan kaldırır. Çoğu istemci, kendi komutlarınızı tanımlamanıza izin verir: Ham komutu bir alias içine koyup kısa bir adla çağırabilirsiniz.
Bu yaklaşımın bir faydası daha vardır: Boşluk içeren parametrelerde iki nokta kuralını alias içinde bir kez doğru yazarsınız ve her kullanımda yeniden düşünmeniz gerekmez. Özellikle ağa özgü komutları sık kullananlar için bu küçük yatırım, günlük kullanımı belirgin şekilde kolaylaştırır.
İstemci Komutu mu, Ham Komut mu?
İstemcinizin bir komutu zaten sunuyorsa onu kullanmak genellikle daha iyidir: İstemci, komutu göndermeden önce parametreleri kontrol eder, hataları yakalar ve cevabı uygun pencerede gösterir. Ham komut gönderdiğinizde bu kolaylıkların hiçbiri yoktur.
Bu yüzden ham komutları, istemcinin sunmadığı durumlar için saklamak en mantıklı yaklaşımdır. İstemcinizin desteklediği bir komutu ham hâliyle göndermenin tek anlamlı gerekçesi, istemcinin komut üzerinde yaptığı bir işlemi atlamak istemenizdir ve bu, nadir bir ihtiyaçtır.
Sonuç
QUOTE ve RAW komutları, istemcinizin sunmadığı protokol komutlarına erişmenin yoludur. Söz dizimi kurallarına uyun, boşluk içeren son parametrenin başına iki nokta koymayı unutmayın, ne yaptığınızı bilmeden komut göndermeyin, parola içeren komutlarda dikkatli olun ve ham mesaj izleme özelliğini protokolü öğrenmek için kullanın. Protokolün modern eklentileri için sıradaki rehberimiz IRCv3 özellikleri.
IRC sorunun mu var? Kanalda birlikte çözelim.
💬 Kanala BağlanSıkça Sorulan Sorular
quote ile raw arasındaki fark nedir?
Pratikte aynı işi yapar; adlandırma istemciye göre değişir. İkisi de komutu doğrudan sunucuya iletir.
Ne zaman ham komut göndermem gerekir?
İstemcinizin desteklemediği bir protokol komutunu kullanmanız gerektiğinde veya özel durumlarda.
Ham komut göndermek riskli mi?
Yanlış yazılmış bir komut genellikle sunucudan hata döndürür. Ciddi risk, ne yaptığını bilmeden komut göndermektir.


