Bozkurt- | 12 Ocak 2023 23:25 | Socket bot ile IRC port kapatma Alıntı:
Mrp. 25 30 insanın girdiği bir ircim var.gelenler hep mobilden geliyor 2 adminimle kendim mırç kullanıyoz.
Biz kendim için başka port açtık. Onu bilen yok. Bir haçkır sürekli saldırıyor. Korumamızda pek iyi değil.
İstediğim zaman irc girişini portan kapatacak bir bot varmı. Gizli port dışında tüm portları ircden kapatacak.
Yardım için teşekkürler.
| PM'den bana ulaşıp kod isteğinde bulunan kullanıcımızın mesajından anladığım kadarıyla istediği portlardan girişleri engelleyecek bir socket bot.
Basit bir şekilde birilerinin de işine yarar diye paylaşıyorum. Kullanıcımız da buradan görüp alır umarım.
Keyifli paylaşımlar.. Kod:
alias swircbot $iif($sock(ircbot).status == active,sockwrite -nt ircbot $1-)
on *:sockclose:ircbot:$+(.timer,ircbot) 1 2 sockopen ircbot $_sunucuip $_port
on *:sockopen:ircbot:{
if ($sockerr) { sockclose ircbot | $+(.timer,ircbot) 1 2 sockopen ircbot $_sunucuip $_port | returnex }
swircbot NICK $+($_ircbot,$r(1000,99999999))
swircbot USER $_ident "" " $+ $iif($host,$host,$ip) $_username
sockmark $sockname $_ircbot
}
on *:sockread:ircbot:{
if ($sockerr) { sockclose ircbot | $+(.timer,ircbot) 1 2 sockopen ircbot $_sunucuip $_port | returnex }
var %;ircbot | sockread %;ircbot | tokenize 32 %;ircbot
if ($1 = ping) swircbot pong $remove($2,:)
elseif $regex($2,/(001|433)/) { swircbot oper $_oper | swircbot ns ghost $_ircbot $_pass | swircbot ns release $_ircbot $_pass | swircbot join #0,0 | $+(.timer,$rand(10,99999)) 1 3 swircbot nick $_ircbot }
elseif $1 == error && $2 == :closing { sockclose ircbot | $+(.timer,ircbot) 1 2 sockopen ircbot $_sunucuip $_port }
elseif $regex($2,/(473|475|471|474)/) { swircbot sajoin $_ircbot $4 }
elseif $regex($2,/(481|411)/) { swircbot oper $_oper | swircbot nick $_ircbot | swircbot nickserv identify $_pass }
elseif ($2 == NICK) {
if $_nick($1) == $_ircbot { swircbot ns ghost $_ircbot $_pass | swircbot ns release $_ircbot $_pass | $+(.timer,$rand(1000,999999)) 1 3 swircbot nick $_ircbot }
elseif $right($3,-1) == $_ircbot {
swircbot nickserv identify $_pass
swircbot oper $_oper
$iif($_supass,swircbot os su $_supass)
swircbot join 0,0
swircbot mode $right($3,-1) +qHp-h
swircbot chgh45t $right($3,-1) $_host
$+(.timer,_ircbotgir) 1 5 swircbot sajoin $right($3,-1) $+($_opers,$chr(44),$_bots)
}
}
elseif $regex($2,/366/) && !$istok($_opers $_bots,$4,32) { swircbot part $4 }
elseif $regex($2,/^PART$/i) {
if $regex($_nick($1),/^ $+ $_ircbot $+ $/Si) && $istok($_opers $_bots,$3,32) { swircbot sajoin $_nick($1) $3 }
}
elseif $regex($2,/^KICK$/i) {
if $regex($4,/^ $+ $_ircbot $+ $/Si) && $istok($_opers $_bots $_xline,$3,32) { swircbot sajoin $4 $3 }
}
elseif $regex($2,/^JOIN$/i) {
if $regex($_nick($1),/ $+ $+(^,$_ircbot,$) $+ /Si) {
if ($right($3,-1) == $_opers) {
swircbot mode $right($3,-1) -qao+h $str($+($_nick($1),$chr(32)),5)
swircbot mode $_nick($1) +qHp-h
swircbot chgh45t $_nick($1) $_usename
}
elseif $istok($_bots,$right($3,-1),32) {
swircbot mode $right($3,-1) -qao+h $str($+($_nick($1),$chr(32)),5)
swircbot mode $_nick($1) +qHp-h
swircbot chgh45t $_nick($1) $_host
}
}
}
elseif $regex($2,/^MODE$/Si) && $regex($3,/^#/) {
if $regex($4,^\+(\S+)?(b)(\S+)?) && $5 {
swircbot mode $3 -b *!*@*
if $regex($5-,/ $+ $_ircbot $+ /i) { swircbot mode $3 -b $_ircbot }
}
elseif $regex($4,^\-(\S+)?(h)(\S+)?) || $regex($4,^\+(\S+)?(a|q|o)(\S+)?) && $regex($5-,/ $+ $_ircbot $+ /i) { swircbot mode $3 -qao+h $str($+($_ircbot,$chr(32)),5) }
}
elseif $regex($2,/^NOTICE$/Si) && $regex($4-,/Client connecting on port/Si) {
var %:nick $token($token($4-,1,40),-1,32), %:ident $token($token($4-,1,64),2,40), %:ip $token($token($4-,2,64),1,41), %:port $token($token($4-,1,58),-1,32), %rand $r(1000,999999)
if $regex(%:port,/666(1|2|3|4|5|6|7|8|9|0)|7000/Si) {
swircbot kill %:nick 0,1IRC Girişimiz Geçici Olarak Kapalıdır.Lütfen 4 $_web 0,1üzerinden giriş deneyiniz.
}
}
}
alias botçık { sockclose ircbot }
alias botgir {
sockopen ircbot $_sunucuip $_port
}
alias _ircbot return IRCQ
alias _pass return nickpass
alias _ident return Bozkurt
alias _username return 0,1Buraya 4Bir şey yazın
alias _oper return opernick operpass
alias _supass return supass
alias _sunucu return irc.sunucum.com
alias _sunucuip return 111.222.33.44
alias _port return 6667
alias _web return Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. alias _opers return #Operkanalı
alias _bots return #Botkanalı
alias _xline return #xline Gerekli bilgileri ekledikten sonra /botgir yazdığınızda otomatik olarak sunucuya bağlanır. /botçık yaptığında sunucudan çıkar. Kod:
if $regex(%:port,/666(1|2|3|4|5|6|7|8|9|0)|7000/Si) { Kısmını kendinize göre düzenlersiniz. |