16 Şubat 2023 tarihinde Mirc kodları kategorisine eklendi.
Yazıyı okuyan kişi sayısı 625
Merhaba arkadaşlar Türkçe mirc kullanan arkadaşların yoğun olarak üzerinde çalıştıkları mirc üzerinden socket bot açtırıp çeşitli güvenlik işlemleri yada extra yapılan işlemleri yaptırdıkları sistemdir.
Önce mIRC’de yazı yazdığımız yerde yani command line’dan /sockopen bot komutunu yazarak botumuzu istediğimiz servera bağlıyoruz.
“bot” adlı socketımız açıldığında
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
on *:sockopen:bot:{ ;eğer socketta bir sorun varsa işlemi durduruyoruz if ($sockerr) { echo $color(info) -st Socket botun bağlantısı kesildi. | return } ;servera bağlanırken botun nicki gönderiliyor swbot NICK BOTUN-NICKI ;servera bağlanırken botun identdi ve usernamei gönderiliyor swbot USER IDENTD * * :USERNAME BURAYA ;socket botun nickiyle işaretleniyor. yani $sock(bot).mark değeri botun nicki oluyor sockmark $sockname BOTUN-NICKI } ;serverdan socketa bilgi geldiğinde on *:sockread:bot:{ ;eğer socketta bir sorun varsa işlemi durduruyoruz if ($sockerr) { echo $color(info) -st Socket botun bağlantısı kesildi. | return } ;%; diye bir değişken oluşturup sockettan gelen bilgiyi bu değişkene yüklüyoruz ve $1- değerini doldurması için tokenize kullanıyoruz var %; | sockread %; | tokenize 32 %; ;eğer @sdebug penceresi yoksa pencere oluşturuluyor ve sockettan gelen bilgi o pencereye gösteriliyor if !$window(@sdebug) { window -k0 @sdebug } | aline -p @sdebug $timestamp < $1- ;sockettan gelen bilgi ile swalias aliasını çağırıyoruz swalias $1- } ;socketta bilgi gönderme aliasımız, eğer bot socketı açıksa o socketa istediğimiz bilgiyi gönderiyoruz alias swbot { if $sock(bot) { sockwrite -n bot $1- } } ;sockettan gelen bilgiyi okumak için oluşturduğumuz swalias aliası alias swalias { ;eğer bot socketı açıksa if $sock(bot) { ;%: değişkenine status penceresine echolaması için bir komut yüklüyoruz var %: = echo $color(info) -st > Socket bot: ;eğer serverdan socket VERSIONu istenirse mIRC v6.17'nin version cevabını gönderiyoruz. if :VERSION iswm $4- { swbot NOTICE $gettok($gettok($1,1,33),1,58) : $+ $chr(1) $+ VERSION mIRC v6.17 Khaled Mardam-Bey $+ $chr(1) } ;eğer serverdan botumuzun fingerı istenirse ona cevap gönderiyoruz if :FINGER iswm $4- { swbot NOTICE $gettok($gettok($1,1,33),1,58) : $+ $chr(1) $+ FINGER Sevket Arslan $+ $chr(1) } ;eğer server bizi pinglerse, bizde onu pongluyoruz, düşmemek için bu gerekli. if $1 == PING { swbot PONG $2- } ;serverdan gelen bilginin 2. kelimesi 474'se, bu 474. rawı gördü demektir, 474. raw bir kanaldan banlı olduğunu gönderir. statuse 4. değer olan kanaldan banlı olduğunu bildiriyor. if $2 == 474 { %: $4 kanalında banlı. } ;2. kelime 366 ise yani /names komutunun sonu ki bu genelde bot kanala girdiğinde gelir, girdiğimiz kanal status penceresine gösteriliyor. if $2 == 366 { %: $4 kanalına girdi. } ;eğer 2. kelime kickse ve 4. kelime botumuzun nickiyse, statuse kanaldan kicklendiğimizi kimin kicklediğini ve neden kicklendiğini gösteriyoruz. if $2 == KICK && $4 == $sock(bot).mark { %: $3 kanalından %n tarafından kicklendi. $+($chr(40),$right($5-,-1),$chr(41)) | swbot JOIN $3 } ;eğer 2. kelime PRIVMSG ise if $2 == PRIVMSG { ;%n değişkenine nicki, %m değişkenine gelen mesajı, %k değişkenine kanalı ayarlıyoruz var %n = $gettok($gettok($1,1,33),1,58), %m = $right($4-,-1), %k = $3 ;eğer nickler belirlediğimiz nickler ise (burda el33t ve el33t2) if $istok(el33t el33t2,%n,32) { ;eğer gelen mesajın birinci sözcüğü .hop ise eğer 2. kelime varsa 2. kelimenin olduğu kanalda, yoksa yazılan kanalda hop komutu uygulanıyor yani kanaldan çıkıp tekrar giriliyor. if .hop == $gettok(%m,1,32) { var %< = $iif($gettok(%m,2,32),$v1,%k) | swbot PART %< | swbot JOIN %< } ;bu da .hop gibi fakat bunda botumuz belirtilen kanaldan çıkıyor. eğer 2. sözcük varsa, o kanaldan, yoksa mesajın yazıldığı kanaldan if .part == $gettok(%m,1,32) { var %< = $iif($gettok(%m,2,32),$v1,%k) | swbot PART %< } ;bu da .part gibi ama bununla istediğimiz kanala sokuyoruz if .join #* iswm %m { swbot JOIN $gettok(%m,2-,32) } } } } } |
Okuduğunuz makalelere benzer yazılar
Güncel Mirc komutları Merhaba arkadaşlar genellikle irc sohbet sunucularında