En iyi Webmaster forumlari.
iyilerin buluşma noktasi.

Snotice proxy

Başlatan Administrator, Tem 28, 2025, 02:07 ÖS

« önceki - sonraki »

Administrator

  # IRC'den gelen satırda "Client connecting on port" varsa, proxy.txt'e göre kontrol eder

set proxylist_file "proxy.txt"
set proxy_notice_msg "Proxy tespit edildi: IP adresiniz listede."
set proxy_trigger_phrase "Client connecting on port"
set proxy_log_file "proxy_snotice.log"

# proxy.txt içeriğini oku
proc load_proxy_list {} {
    global proxylist_file proxy_list
    set proxy_list {}
    if {[file exists $proxylist_file]} {
        set fp [open $proxylist_file r]
        set proxy_list [split [read $fp] "\n"]
        close $fp
    }
}

# IP proxy listesinde mi?
proc is_proxy_ip {ip} {
    global proxy_list
    foreach proxy_entry $proxy_list {
        if {$proxy_entry eq ""} { continue }
        if {[string match "*$proxy_entry*" $ip]} {
            return 1
        }
    }
    return 0
}

# Loglama
proc log_proxy_event {ip port} {
    global proxy_log_file
    set time [clock format [clock seconds] -format "%Y-%m-%d %H:%M:%S"]
    set fp [open $proxy_log_file a]
    puts $fp "$time - Proxy IP tespit edildi: $ip (Port $port)"
    close $fp
}

# RAW satırları dinle
bind raw - "* NOTICE *" monitor_proxy_notice

proc monitor_proxy_notice {from keyword arg} {
    global proxy_trigger_phrase

    if {[string match -nocase "*$proxy_trigger_phrase*" $arg]} {
        # Örnek satırdan IP ve port ayıkla
        # Örnek: "Client connecting on port 1080: 123.45.67.89"
        if {[regexp {Client connecting on port ([0-9]+): ([0-9\.]+)} $arg -> port ip]} {
            if {[is_proxy_ip $ip]} {
                log_proxy_event $ip $port
                # Burada işlem yapılabilir, örneğin botun owner'ına notice at
                putserv "PRIVMSG $::owner_nick :Proxy IP tespit edildi: $ip (port $port)"
            }
        }
    }
}
 
Webmasterforumlari.com yorumlarınız değerlidir..

Administrator

# Proxy Port + IP Tespiti - "Client connecting on port" satırlarını tarar
# IRC sunucusundan gelen NOTICE/SNOTICE loglarında çalışır

set proxylist_file "proxy.txt"
set proxy_ports {1080 3128 8080 8000 6588 553 81 9999 6666 23}
set log_file "proxy_detected.log"
set kick_reason "Proxy bağlantısı tespit edildi. Erişiminiz engellendi."

# Proxy IP listesi yükle
proc load_proxy_list {} {
    global proxylist_file proxy_list
    set proxy_list {}
    if {[file exists $proxylist_file]} {
        set fp [open $proxylist_file r]
        set proxy_list [split [read $fp] "\n"]
        close $fp
    }
}

# IP proxy.txt içinde mi?
proc is_proxy_ip {ip} {
    global proxy_list
    foreach entry $proxy_list {
        if {$entry eq ""} { continue }
        if {[string match "*$entry*" $ip]} {
            return 1
        }
    }
    return 0
}

# Port şüpheli mi?
proc is_proxy_port {port} {
    global proxy_ports
    return [expr {$port in $proxy_ports}]
}

# Log yaz
proc log_proxy_detected {ip port reason} {
    global log_file
    set now [clock format [clock seconds] -format "%Y-%m-%d %H:%M:%S"]
    set fp [open $log_file a]
    puts $fp "$now - $ip:$port - $reason"
    close $fp
}

# IRC'den gelen satırları izle
bind raw - "* NOTICE *" client_connect_check

proc client_connect_check {from keyword arg} {
    # Örnek satır: "Client connecting on port 1080: 123.45.67.89"
    if {[string match -nocase "*Client connecting on port*" $arg]} {
        if {[regexp {Client connecting on port ([0-9]+): ([0-9\.]+)} $arg -> port ip]} {

            set matched 0

            if {[is_proxy_ip $ip]} {
                log_proxy_detected $ip $port "proxy.txt içinde"
                set matched 1
            }

            if {[is_proxy_port $port]} {
                log_proxy_detected $ip $port "şüpheli port"
                set matched 1
            }

            if {$matched} {
                # Dilersen notice, kill, gline, vs.
                putserv "KILL $ip :$::kick_reason"
                # Alternatif: putserv "GLINE $ip 1d :$::kick_reason"
            }
        }
    }
}

# Başlangıçta proxy listesi yüklenir
load_proxy_list
 
Webmasterforumlari.com yorumlarınız değerlidir..

Administrator

  # Eggdrop IRC Proxy / Tor / DNSBL Koruma Sistemi
# Gelişmiş kontrol modülü: proxy.txt + tor.txt + DNSBL + admin komutları

set proxylist_file "proxy.txt"
set torlist_file "tor.txt"
set log_file "proxy_detect.log"

# DNSBL sunucuları
set dnsbl_servers {
    "dnsbl.dronebl.org"
    "rbl.efnetrbl.org"
    "dnsbl.tornevall.org"
}

# Proxy port listesi
set proxy_ports {1080 3128 8080 8000 6588 553 81 9999 23}

# Admin tanımla
set admin_users {"Erkan" "Admin"}

# Başlangıçta listeleri yükle
set proxy_list {}
set tor_list {}
load_lists

# ==============================
# Dosya Okuma
# ==============================

proc load_lists {} {
    global proxylist_file torlist_file proxy_list tor_list

    if {[file exists $proxylist_file]} {
        set fp [open $proxylist_file r]
        set proxy_list [split [read $fp] "\n"]
        close $fp
    }

    if {[file exists $torlist_file]} {
        set fp [open $torlist_file r]
        set tor_list [split [read $fp] "\n"]
        close $fp
    }
}

# ==============================
# Kontrol Fonksiyonları
# ==============================

proc is_proxy_ip {ip} {
    global proxy_list
    foreach p $proxy_list {
        if {[string match "*$p*" $ip]} { return 1 }
    }
    return 0
}

proc is_tor_ip {ip} {
    global tor_list
    foreach t $tor_list {
        if {[string match "*$t*" $ip]} { return 1 }
    }
    return 0
}

proc is_proxy_port {port} {
    global proxy_ports
    return [expr {$port in $proxy_ports}]
}

# ==============================
# Loglama
# ==============================

proc log_detect {type ip port} {
    global log_file
    set time [clock format [clock seconds] -format "%Y-%m-%d %H:%M:%S"]
    set f [open $log_file a]
    puts $f "$time - $type: $ip:$port"
    close $f
}

# ==============================
# IRC'den Giriş Tespiti
# ==============================

bind raw - "* NOTICE *" detect_connection

proc detect_connection {from keyword arg} {
    if {[regexp {Client connecting on port ([0-9]+): ([0-9\.]+)} $arg -> port ip]} {
        set matched 0

        if {[is_proxy_ip $ip]} {
            log_detect "PROXY-LIST" $ip $port
            set matched 1
        }

        if {[is_tor_ip $ip]} {
            log_detect "TOR-EXIT" $ip $port
            set matched 1
        }

        if {[is_proxy_port $port]} {
            log_detect "PROXY-PORT" $ip $port
            set matched 1
        }

        if {$matched} {
            putserv "GLINE $ip 1d :Proxy veya Tor bağlantısı tespit edildi"
        }
    }
}

# ==============================
# Admin Komutları
# ==============================

bind pub - "!proxykontrol" cmd_proxykontrol
bind pub - "!proxyekle" cmd_proxyekle
bind pub - "!proxykaldir" cmd_proxykaldir
bind pub - "!proxylist" cmd_proxylist
bind pub - "!torliste" cmd_torliste
bind pub - "!dnsblkontrol" cmd_dnsbl

proc is_admin {nick} {
    global admin_users
    return [expr {$nick in $admin_users}]
}

proc cmd_proxykontrol {nick host hand chan arg} {
    if {![is_admin $nick]} return
    if {$arg eq ""} {
        putserv "PRIVMSG $chan :Kullanım: !proxykontrol <ip>"
        return
    }

    set msg "IP: $arg - "
    if {[is_proxy_ip $arg]} { append msg "proxy.txt ✅ " }
    if {[is_tor_ip $arg]} { append msg "tor.txt ✅ " }
    putserv "PRIVMSG $chan :$msg"
}

proc cmd_proxyekle {nick host hand chan arg} {
    if {![is_admin $nick]} return
    if {$arg eq ""} return
    set fp [open $::proxylist_file a]
    puts $fp $arg
    close $fp
    load_lists
    putserv "PRIVMSG $chan :$arg proxy listesine eklendi."
}

proc cmd_proxykaldir {nick host hand chan arg} {
    if {![is_admin $nick]} return
    if {$arg eq ""} return
    set newlist {}
    foreach line $::proxy_list {
        if {$line ne $arg} {
            lappend newlist $line
        }
    }
    set fp [open $::proxylist_file w]
    foreach item $newlist { puts $fp $item }
    close $fp
    load_lists
    putserv "PRIVMSG $chan :$arg proxy listesinden çıkarıldı."
}

proc cmd_proxylist {nick host hand chan arg} {
    if {![is_admin $nick]} return
    putserv "PRIVMSG $chan :Proxy.txt → [join $::proxy_list ", "]"
}

proc cmd_torliste {nick host hand chan arg} {
    if {![is_admin $nick]} return
    putserv "PRIVMSG $chan :Tor.txt → [join $::tor_list ", "]"
}

proc cmd_dnsbl {nick host hand chan ip} {
    if {![is_admin $nick]} return
    if {![regexp {^([0-9]+\.){3}[0-9]+$} $ip]} {
        putserv "PRIVMSG $chan :Geçersiz IP"
        return
    }

    set revip [join [lreverse [split $ip "."]] "."]
    foreach dnsbl $::dnsbl_servers {
        set query "$revip.$dnsbl"
        dnslookup $query [list dnsbl_result $chan $dnsbl $ip]
    }
}

proc dnsbl_result {chan dnsbl ip addr status} {
    if {$status eq "OK"} {
        putserv "PRIVMSG $chan :$ip → $dnsbl LİSTELENMİŞ ❌"
    } else {
        putserv "PRIVMSG $chan :$ip → $dnsbl temiz ✅"
    }
}
 
Webmasterforumlari.com yorumlarınız değerlidir..