IRC Hata Numerikleri: Sayısal Cevap Kodlarını Anlamak
İçindekiler
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-099 | Bağlantı ve sunucu bilgileri |
| 200-399 | Komut cevapları (whois, list, names vb.) |
| 400-499 | Hata mesajları |
| 500-599 | Sunucuya ö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ı
| Durum | Anlamı |
|---|---|
| Nick kullanımda | İstediğiniz nick başka biri tarafından kullanılıyor |
| Geçersiz nick | Nick, 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ık | Ağı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ı
| Durum | Anlamı |
|---|---|
| Böyle bir kanal yok | Kanal adı yanlış veya kanal mevcut değil |
| Davet gerekiyor | Kanal davetle giriş modunda |
| Banlandınız | Maskeniz kanalın ban listesinde |
| Kanal dolu | Kanalın kullanıcı sınırına ulaşıldı |
| Parola gerekiyor veya yanlış | Kanal parolalı |
| Çok fazla kanalda bulunuyorsunuz | Ağın kanal sınırına ulaştınız |
| Kanalda değilsiniz | Bulunmadığınız bir kanalda işlem yapmaya çalıştınız |
| Yetkiniz yok | Kanal operatörü olmanız gerekiyor |
| Kayıtlı kullanıcı gerekiyor | Services 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ı
| Durum | Anlamı |
|---|---|
| Yetkiniz yok | Komut için gereken yetkiye sahip değilsiniz |
| Operatör değilsiniz | Komut 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ı
| Durum | Anlamı |
|---|---|
| Böyle bir nick yok | Belirttiğiniz kullanıcı ağda bulunamadı |
| Alıcı belirtilmedi | Komut bir hedef gerektiriyor |
| Gönderilecek metin yok | Mesaj boş |
| Hedefe gönderilemedi | Alıcı mesaj almayı engelliyor veya kısıtlama var |
| Çok fazla hedef | Tek 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ğlanSı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.


