IRC Komutları

IRC Hata Numerikleri: Sayısal Cevap Kodlarını Anlamak

· Güncelleme: · 5 dk okuma

IRC Hata Numerikleri: Sayısal Cevap Kodlarını Anlamak
İçindekiler
  1. Kod Yapısı
  2. Bağlantı Kodları
  3. Nick Hataları
  4. Kanal Hataları
  5. Yetki Hataları
  6. Kullanıcı ve Mesaj Hataları
  7. Bilgi Cevapları
  8. Script ve Bot Yazarken
  9. Kodları Öğrenmek
  10. Sunucu Farkları
  11. Gerçek Bir Senaryo
  12. Sonuç

IRC sunucuları, isteklere sayısal kodlarla cevap verir. Bir kanala giremediğinizde, bir nick alınamadığında veya bir komut reddedildiğinde sunucu belirli bir kod döndürür. İstemciniz bu kodları okunabilir metne çevirdiği için çoğu kullanıcı farkında olmaz ama IRC hata numerikleri bilmek, sorun gidermeyi ve script yazmayı belirgin şekilde kolaylaştırır.

Kod Yapısı

Numerik kodlar üç hanelidir ve genel olarak gruplara ayrılır:

Aralıkİçerik
001-099Bağlantı ve sunucu bilgileri
200-399Komut cevapları (whois, list, names vb.)
400-499Hata mesajları
500-599Sunucuya özgü hatalar ve uzantılar

Dört yüzlü grup, hata kodlarının toplandığı yerdir ve sorun giderirken en çok bakacağınız aralıktır.

Bağlantı Kodları

Bağlandığınızda sunucu bir dizi bilgi mesajı gönderir: hoş geldin mesajı, sunucu bilgileri, desteklenen özellikler, kullanıcı sayıları ve günün mesajı.

Bu kodlar arasında en önemlisi, bağlantının tamamlandığını bildiren hoş geldin mesajıdır: Bu kodu aldığınızda artık komut gönderebilirsiniz. Script ve bot yazarken bu kod, bağlantının hazır olduğunu anlamanın güvenilir yoludur.

Sunucunun desteklediği özellikleri bildiren kod da çok değerlidir: Nick uzunluğu, kanal modları, mod sınırları ve genişletilmiş ban türleri gibi bilgiler buradan alınır. Bkz. IRC stats ve bilgi komutları.

Nick Hataları

DurumAnlamı
Nick kullanımdaİstediğiniz nick başka biri tarafından kullanılıyor
Geçersiz nickNick, izin verilmeyen karakter içeriyor veya çok uzun
Nick çakışmasıSunucu bölünmesi sonrası aynı nickin iki kez kullanılması
Nick değişikliği çok sıkAğın nick değişikliği sınırına takıldınız

Nick kullanımda hatası, bağlantı sırasında en sık karşılaşılan durumdur. İstemcilerin alternatif nick ayarı, bu hatayı otomatik olarak ele alır. Bkz. IRC nick komutu.

Kanal Hataları

DurumAnlamı
Böyle bir kanal yokKanal adı yanlış veya kanal mevcut değil
Davet gerekiyorKanal davetle giriş modunda
BanlandınızMaskeniz kanalın ban listesinde
Kanal doluKanalın kullanıcı sınırına ulaşıldı
Parola gerekiyor veya yanlışKanal parolalı
Çok fazla kanalda bulunuyorsunuzAğın kanal sınırına ulaştınız
Kanalda değilsinizBulunmadığınız bir kanalda işlem yapmaya çalıştınız
Yetkiniz yokKanal operatörü olmanız gerekiyor
Kayıtlı kullanıcı gerekiyorServices hesabınıza giriş yapmanız gerekiyor

Bu hatalar, bir kanala giremediğinizde nedenini doğrudan söyler. Kanal modları için IRC kanal modları, kanala giriş için IRC join ve part yazılarımıza bakın.

Son satır önemlidir: Kayıtlı kullanıcı gerektiren kanallara girmek için SASL kullanmak en güvenilir yoldur. Bkz. IRC SASL bağlantı.

Yetki Hataları

DurumAnlamı
Yetkiniz yokKomut için gereken yetkiye sahip değilsiniz
Operatör değilsinizKomut operatör yetkisi gerektiriyor
Parola yanlışOperatör girişinde parola hatası
Operatör bloğu bulunamadıOper girişi için tanım yok veya host eşleşmiyor

Yetki hataları, bir komutun neden çalışmadığını açıklar. Operatör yetkileri için IRC oper komutları yazımıza bakın.

Kullanıcı ve Mesaj Hataları

DurumAnlamı
Böyle bir nick yokBelirttiğiniz kullanıcı ağda bulunamadı
Alıcı belirtilmediKomut bir hedef gerektiriyor
Gönderilecek metin yokMesaj boş
Hedefe gönderilemediAlıcı mesaj almayı engelliyor veya kısıtlama var
Çok fazla hedefTek komutta çok sayıda alıcı belirtildi
Flood korumasıÇok hızlı mesaj gönderiyorsunuz

Hedefe gönderilemedi hatası, karşı tarafın kayıtsız kullanıcılardan mesaj almayı engelleyen bir mod kullandığı durumlarda görülür. Bkz. IRC kullanıcı modları.

Bilgi Cevapları

Hata olmayan kodlar da vardır: Bir sorgunun sonucunu döndüren kodlar. Örneğin whois sorgusunun cevabı birkaç farklı koddan oluşur: kimlik bilgisi, kanal listesi, sunucu bilgisi, boşta kalma süresi, hesap durumu ve bitiş bildirimi.

Benzer şekilde kanal listesi, kullanıcı listesi ve kanal konusu sorguları da kendi kodlarıyla cevap verir ve çok parçalı cevaplarda bir bitiş kodu gönderilir.

Bu yapı, script ve bot yazarken önemlidir: Çok parçalı bir cevabı toplamak için parçaları biriktirip bitiş kodu geldiğinde işlemeniz gerekir.

Script ve Bot Yazarken

Numerik kodlar, script ve bot yazarken en çok işe yarayan protokol bilgisidir. Tipik kullanımlar:

Bağlantı hazır olduğunu anlamak: Hoş geldin kodunu bekleyip ardından kanallara girmek.

Nick çakışmasını ele almak: Nick kullanımda kodunu yakalayıp alternatif nick denemek.

Kanala girilemediğini tespit etmek: Hangi kanal hatasının geldiğine göre farklı davranmak; örneğin kayıtlı kullanıcı gerekiyorsa services'e giriş yapıp tekrar denemek.

Sunucu yeteneklerini okumak: Desteklenen mod ve sınırları öğrenip scriptin davranışını buna göre ayarlamak.

Çok parçalı cevapları toplamak: Kanal listesi veya whois gibi sorguların sonuçlarını biriktirip bitiş kodunda işlemek.

mIRC'te numerik kodları yakalamak için mIRC raw eventleri yazımıza bakın.

Kodları Öğrenmek

Bütün kodları ezberlemek gereksizdir ve zaten mümkün değildir: Sunucu yazılımları yüzlerce kod tanımlar ve bazıları yazılıma özgüdür.

Pratik yaklaşım şudur: Script yazarken ihtiyaç duyduğunuz kodları belgelerden bakın ve en sık kullandığınız birkaçını zamanla öğrenin. Protokol belgeleri ve sunucu yazılımının belgeleri en güvenilir kaynaktır.

Ayrıca bir kodun ne döndürdüğünü görmek için istemcinizin ham mesaj izleme özelliğini kullanabilirsiniz: Bir komut gönderip sunucunun cevabını ham hâliyle incelemek, belgeleri okumaktan daha hızlı sonuç verir. Bkz. IRC quote ve raw.

Sunucu Farkları

Standart kodlar bütün sunucularda aynı anlama gelir ama sunucu yazılımları kendi ek kodlarını da tanımlar. Özellikle beş yüzlü aralıktaki kodlar, sunucuya özgü olabilir.

Bu yüzden bir scriptin farklı ağlarda çalışması gerekiyorsa, yalnızca standart kodlara dayanmak daha güvenlidir. Sunucuya özgü kodları kullanacaksanız ağ kontrolü yapmak gerekir.

Gerçek Bir Senaryo

Bir kullanıcı, yazdığı küçük bir botu bir ağa bağlıyor. Bot bağlanıyor ama kanallara giremiyor; durum penceresinde anlamsız bir sayı ve kısa bir metin görünüyor. Kodu araştırdığında, kanalın yalnızca kayıtlı kullanıcılara açık olduğunu bildiren bir hata olduğunu öğreniyor. Botuna SASL yapılandırması ekliyor ve ayrıca bu kodu yakalayıp durumu kendi log dosyasına açıklayıcı bir mesajla kaydeden bir kontrol yazıyor. Bir sonraki benzer sorunda nedeni anında anlıyor.

Sonuç

Numerik kodlar, IRC sunucusunun size ne söylediğini anlamanın yoludur. Hata gruplarını tanıyın, bir sorun yaşadığınızda kodun ne anlama geldiğine bakın, script yazarken bağlantı ve kanal kodlarını yakalayın, çok parçalı cevapları bitiş koduyla toplayın ve sunucuya özgü kodlara dayanırken dikkatli olun. Bütün bu bilgiyi kanal yönetiminde birleştirmek için sıradaki rehberimiz IRC kanal yönetimi temelleri.

IRC sorunun mu var? Kanalda birlikte çözelim.

💬 Kanala Bağlan

Sıkça Sorulan Sorular

Numerik kod nedir?

Sunucunun bir isteğe verdiği cevabı belirten üç haneli bir sayıdır; her kod belirli bir anlam taşır.

Kodları ezberlemem gerekir mi?

Hayır. İstemciniz çoğu kodu okunabilir metne çevirir. Script yazarken belirli kodları bilmek faydalıdır.

Bir kodun anlamını nereden öğrenirim?

Sunucu yazılımının belgelerinden veya protokol belgelerinden; istemcinizin gösterdiği metin de genellikle açıklayıcıdır.