IRCRehberi.Net- Türkiyenin En iyi IRC ve Genel Forum Sitesi

IRCRehberi.Net- Türkiyenin En iyi IRC ve Genel Forum Sitesi (https://www.ircrehberi.net/)
-   Eggdrop, NeoStats, BNC (https://www.ircrehberi.net/eggdrop-neostats-bnc/)
-   -   UnrealIRCd 3.2.10 Uyumlu Kyo Koruma Scripti (https://www.ircrehberi.net/eggdrop-neostats-bnc/250187-unrealircd-3210-uyumlu-kyo-koruma-scripti.html)

Kyo 11 Ağustos 2026 13:45

UnrealIRCd 3.2.10 Uyumlu Kyo Koruma Scripti
 
Kod:

################################################################################
# Sistem: Sıfırdan Eggdrop Sunucu Gelişmiş Koruma ve Duyuru Scripti
# Sürüm: UnrealIRCd 3.2.10 Özel Versiyon
# Geliştirici: Kyo
# Dil: Tcl / Eggdrop 1.6, 1.8, 1.9+ Sürümleriyle Tam Uyumlu
################################################################################

namespace eval Kyo {
   
    # --- UNREALIRCD 3.2.10 OPER / ADMIN AYARLARI ---
    variable oper_user "KyoOper"      ; # UnrealIRCd oper.conf içindeki login ismi
    variable oper_pass "OperSifreniz" ; # UnrealIRCd oper.conf içindeki şifre
   
    # --- CEZA VE AKSİYON AYARLARI ---
    variable akick_sure 30            ; # Kanal banlarının süresi (Dakika)
    variable gzline_sure "1d"        ; # UnrealIRCd 3.2.10 için GZLINE süresi (Örn: 1d = 1 Gün, 1h = 1 Saat)
    variable kufur_aksiyon "kickban"  ; # Küfür durumunda: "kick", "ban" ya da "kickban"
   
    # --- FLOOD VE KORUMA EŞİKLERİ ---
    variable flood_mesaj_sayisi 4    ; # X saniyede atılabilecek maksimum mesaj
    variable flood_mesaj_suresi 3    ; # Kontrol edilecek saniye aralığı
   
    variable flood_join_sayisi 5      ; # X saniyede kanala girebilecek maksimum kullanıcı
    variable flood_join_suresi 4      ; # Kontrol edilecek saniye aralığı
   
    variable flood_nick_sayisi 3      ; # X saniyede yapılabilecek maksimum nick değişimi
    variable flood_nick_suresi 5      ; # Kontrol edilecek saniye aralığı

    # --- YASAKLI KELİMELER / REKLAM LİSTESİ ---
    variable yasakli_kelimeler {
        "www." ".com" ".net" ".org" "irc." "chate gel"
        "oç" "******************" "piç" "******************" "*********" "göt" "pkk"
    }

    # --- DAHİLİ HAFIZA VE TAKİP DİZİLERİ ---
    variable msg_tracker; array set msg_tracker[list]
    variable join_tracker; array set join_tracker[list]
    variable nick_tracker; array set nick_tracker[list]

    # --- BINDING (TETİKLEYİCİLER) ---
    bind evnt - init-server [namespace current]::bot_oper_giris
    bind pubm - * [namespace current]::pub_mesaj_kontrol
    bind join - * [namespace current]::join_ve_greet_kontrol
    bind nick - * [namespace current]::nick_kontrol
    bind raw - 381 [namespace current]::oper_basarili_log
   
    # Yönetim Komutları
    bind pub o|o .ban [namespace current]::admin_ban
    bind pub o|o .unban [namespace current]::admin_unban
    bind pub o|o .temizle [namespace current]::admin_clear

    # --- FONKSİYONLAR AND KORUMA LOGİKLERİ ---

    # 1. Otomatik Oper Giriş Mekanizması (UnrealIRCd 3.2.10 Raw Yapısı)
    proc bot_oper_giris {type} {
        variable oper_user
        variable oper_pass
        # UnrealIRCd 3.2.10 için standart OPER syntax komutu gönderilir
        putquick "OPER $oper_user $oper_pass"
    }

    proc oper_basarili_log {from keyword arguments} {
        putlog "Kyo [UnrealIRCd 3.2.10]: Sunucuda başarıyla GLOBAL OPER/ADMIN yetkisi alındı!"
    }

    # Gelişmiş Ceza Uygulama (UnrealIRCd 3.2.10 GZLINE / KLINE / BAN Sözdizimi)
    proc ceza_ver {nick uhost chan sebep {global 0}} {
        variable akick_sure
        variable gzline_sure
        variable kufur_aksiyon
       
        set ip [lindex [split $uhost @] 1]
        set mask "*!*@$ip"
       
        # UnrealIRCd 3.2.10 Sözdizimi: GZLINE [mask] [süre] :[sebep]
        if {$global == 1} {
            putquick "GZLINE *@$ip $gzline_sure :Saldiri Girisimi Engellendi! (Kyo Guard)"
            putquick "KLINE *@$ip $gzline_sure :Saldiri Girisimi Engellendi! (Kyo Guard)"
            return 1
        }
       
        if {$kufur_aksiyon == "ban" || $kufur_aksiyon == "kickban"} {
            newchanban $chan $mask "Kyo" $sebep $akick_sure
        }
        if {$kufur_aksiyon == "kick" || $kufur_aksiyon == "kickban"} {
            putquick "KICK $chan $nick :$sebep"
        }
    }

    # 2. Yazı Flood ve Kelime Filtresi
    proc pub_mesaj_kontrol {nick uhost hand chan text} {
        variable yasakli_kelimeler
        variable flood_mesaj_sayisi
        variable flood_mesaj_suresi
        variable msg_tracker

        if {[isop $nick $chan] || [isvoice $nick $chan]} { return 0 }

        set low_text [string tolower $text]
        foreach kelime $yasakli_kelimeler {
            if {[string first $kelime $low_text] != -1} {
                ceza_ver $nick $uhost $chan "Yasakli Kelime/Reklam Kullanimi Engellendi!"
                return 1
            }
        }

        set simdi [unixtime]
        set u_id "$nick:$chan"
       
        if {![info exists msg_tracker($u_id)]} { set msg_tracker($u_id)[list] }

        set gecmis[list]
        foreach t $msg_tracker($u_id) {
            if {($simdi - $t) <= $flood_mesaj_suresi} { lappend gecmis $t }
        }
       
        lappend gecmis $simdi
        set msg_tracker($u_id) $gecmis

        if {[llength $gecmis] > $flood_mesaj_sayisi} {
            ceza_ver $nick $uhost $chan "Mesaj Flood / Sunucu Korumasi Aktif!"
            unset msg_tracker($u_id)
            return 1
        }
        return 0
    }

    # 3. Kanala Giriş (Join Flood) ve UnrealIRCd 3.2.10 Uyumlu Greet Sistemi
    proc join_ve_greet_kontrol {nick uhost hand chan} {
        variable flood_join_sayisi
        variable flood_join_suresi
        variable join_tracker

        # --- GREET / DUYURU SİSTEMİ ---
        if {$nick != $::botnick} {
            # UnrealIRCd 3.2.10'da o/a/o bayrakları veya doğrudan kanal @ durumu kontrolü
            if {[matchattr $hand o] || [isop $nick $chan]} {
               
                # Kanal içi duyuru
                putquick "PRIVMSG $chan :\00304【 YETKİLİ GİRİŞİ 】\003 \002$nick\002 şu anda \002$chan\002 kanalına giriş yaptı. Hoş geldiniz!"
               
                # Global kanallar arası döngüsel duyuru
                foreach kanal [channels] {
                    if {$kanal != $chan} {
                        putquick "PRIVMSG $kanal :\00306【 SUNUCU DUYURUSU 】\003 Değerli Yönetici \002$nick\002 şu anda aktif olmuştur!"
                    }
                }
            }
        }

        if {[matchattr $hand o]} { return 0 }

        # --- SALDIRI (JOIN FLOOD) KORUMASI ---
        set simdi [unixtime]
        if {![info exists join_tracker($chan)]} { set join_tracker($chan)[list] }

        set gecmis[list]
        foreach t $join_tracker($chan) {
            if {($simdi - $t) <= $flood_join_suresi} { lappend gecmis $t }
        }

        lappend gecmis $simdi
        set join_tracker($chan) $gecmis

        if {[llength $gecmis] > $flood_join_sayisi} {
            # Kitlesel saldırıda kanalı kilitle (+m)
            putquick "MODE $chan +m"
            putquick "PRIVMSG $chan :\00304【 Kyo Saldırı Koruması 】\003 Hızlı girişler algılandı! Kanal geçici olarak susturuldu (+m)."
           
            # UnrealIRCd 3.2.10 mimarisinde saldırgan IP'ye anında küresel engelleme
            ceza_ver $nick $uhost $chan "Mass Join Flood" 1
           
            utimer 15[list putquick "MODE $chan -m"]
            set join_tracker($chan)[list]
        }
        return 0
    }

    # 4. Nick Değiştirme (Nick Flood) Koruması
    proc nick_kontrol {nick uhost hand chan newnick} {
        variable flood_nick_sayisi
        variable flood_nick_suresi
        variable nick_tracker

        if {[isop $newnick $chan]} { return 0 }

        set simdi [unixtime]
        set u_id "*!*@[lindex [split $uhost @] 1]"

        if {![info exists nick_tracker($u_id)]} { set nick_tracker($u_id)[list] }

        set gecmis[list]
        foreach t $nick_tracker($u_id) {
            if {($simdi - $t) <= $flood_nick_suresi} { lappend gecmis $t }
        }

        lappend gecmis $simdi
        set nick_tracker($u_id) $gecmis

        if {[llength $gecmis] > $flood_nick_sayisi} {
            # Nick flood yapan IP'yi UnrealIRCd ağından temizle
            ceza_ver $newnick $uhost $chan "Sık Nick Degistirme (Nick Flood) Yasak!" 1
            unset nick_tracker($u_id)
        }
        return 0
    }

    # --- UNREALIRCD MİMARİSİNE UYGUN YÖNETİM ALIASLARI ---

    proc admin_ban {nick uhost hand chan text} {
        set hedef [lindex [split $text] 0]
        set sebep [lrange [split $text] 1 end]
        if {$hedef == ""} {
            putquick "NOTICE $nick :Kullanım: .ban <nick> <sebep>"
            return 0
        }
        if {$sebep == ""} { set sebep "Yönetici İsteği." }
       
        set hedef_uhost [getchanhost $hedef $chan]
        if {$hedef_uhost != ""} {
            ceza_ver $hedef $hedef_uhost $chan $sebep
        } else {
            putquick "NOTICE $nick :$hedef kanalda bulunamadı."
        }
    }

    proc admin_unban {nick uhost hand chan text} {
        set hedef [lindex [split $text] 0]
        if {$hedef == ""} {
            putquick "NOTICE $nick :Kullanım: .unban <ban_maskesi/nick>"
            return 0
        }
        if {[string first "!" $hedef] == -1} {
            set h_host [getchanhost $hedef $chan]
            if {$h_host != ""} { set hedef "*!*@[lindex [split $h_host @] 1]" }
        }
        killchanban $chan $hedef
        putquick "MODE $chan -b $hedef"
        putquick "PRIVMSG $chan :$hedef ban cezası $nick tarafından kaldırıldı."
    }

    proc admin_clear {nick uhost hand chan text} {
        for {set i 0} {$i < 30} {incr i} { putpurple $chan " " }
        putquick "PRIVMSG $chan :Kanal ekranı \002$nick\002 tarafından temizlendi."
    }
}

putlog "Sıfırdan UnrealIRCd 3.2.10 Uyumlu Kyo Scripti Başarıyla Yüklendi! (Geliştirici: Kyo)"

Sunucu Uyumluluğu: UnrealIRCd 3.2.10 mimarisine tam entegredir.
Oto-Oper Girişi: Sunucuya bağlandığı an otomatik OPER girişi yapar.
Gelişmiş GZLINE: Saldırı anında IP adreslerine otomatik GZLINE atar.
Anlık KLINE: Bot saldırılarını engellemek için KLINE komutunu yürütür.
Yazı Flood Koruması: Belirlenen sürede hızlı mesaj atanları anında cezalandırır.
Join Flood Koruması: Kanala hızlı bot girişlerinde odayı +m moduna alır.
Nick Flood Koruması: Seri nick değiştiren saldırganları sunucudan uzaklaştırır.
Kelime Filtresi: Küfür, hakaret ve reklam içerikli kelimeleri kanalda engeller.
Yetkili Karşılaması: Kanala giren operatörleri kullanıcılara renkli duyurur.
Global Admin Duyurusu: Aktif olan yöneticileri tüm ortak kanallarda ilan eder.
Hafıza Optimizasyonu: Zaman bazlı diziler kullanarak botun RAM tüketimini azaltır.
Güvenli Whitelist: Kanaldaki yetkilileri koruma filtrelerinden muaf tutar.
Pratik .ban Komutu: Kanal içinden yetkililerin hızlı ban atmasını sağlar.
Kolay .unban Komutu: Maske veya nick belirterek hızlıca ban kaldırır.
Ekran Temizleme: .temizle komutuyla kanal geçmişini hızlıca kaydırır



/eggdrop/scripts/
Yoluna atın. Kyo.tcl oluşturun ve kodları içine yapıştırın.
Botu yeniden başlatın.
Umarım işinize yarar.

Daemon 11 Ağustos 2026 23:38

Gelişmeye açık eggdrop, buna dnsbl vb korumalar da eklenebilir.

Kyo 13 Ağustos 2026 15:22

İlginiz için Teşekkürler
 
Alıntı:

Daemon Nickli Üyeden Alıntı (Mesaj 2368515)
Gelişmeye açık eggdrop, buna dnsbl vb korumalar da eklenebilir.

Aklınızdaki tüm yenilikleri ekleyebilir, güncelleyebilir ve kullanabilirsiniz.
Hiç bir mahsur görmem. İyi forumlar.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 18:18.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions, Inc.

Copyright ©2019 - 2026 | IRCRehberi.Net