IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   mIRC Scripting Dersleri (https://www.ircforumlari.net/mirc-scripting-dersleri/)
-   -   Socket bot yapımı (https://www.ircforumlari.net/mirc-scripting-dersleri/15932-socket-bot-yapimi.html)

el33t 16 Nisan 2006 20:37

Socket bot yapımı
 
Her zaman sorulan socket botun nasıl yapıldığı konusunu biraz anlattım. Aşağıdaki kodun içinde neyin ne olduğunu gösteriyor. Sizde bu kodu yükledikten sonra @sdebug penceresine gelen bilgiye göre swalias'ı içinde istediğinizi ekleyebilirsiniz. İşte kod ve açıklaması:

Önce mIRC'de yazı yazdığımız yerde yani command line'dan /sockopen bot <server-ip> <port> komutunu yazarak botumuzu istediğimiz servera bağlıyoruz.

;"bot" adlı socketımız açıldığında
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) }
}
}
}
}



Umarım işinize yarar

h4pp3n 17 Nisan 2006 12:42

Yanıt: Socket bot yapımı
 
Tesekkür el33t. Güzel bi anlatım.

ExpresSs 27 Nisan 2006 14:41

Yanıt: Socket bot yapımı
 
Arkadaşlar ben Hiç Socket Botu yapmadım acaba bunu nereye ekleyeceğim script Dosyasına mı Yoksa Alias vs. vs Birde bunu ekledikten sonra ne işe yapıyacak yada nasıl kullanacağım yardım ederseniz Sevinirim Arkadaşlar...:confused:

ExpresSs 28 Nisan 2006 00:08

Yanıt: Socket bot yapımı
 
Abicim scriptten anlarım da Azck yardım edemezmiiniz Sojcket den anlamam
:confused:

ExpresSs 28 Nisan 2006 22:51

Yanıt: Socket bot yapımı
 
beyler burası yardımlaşma için Değil galiba ben Yolumu Şaşırmışım Pardon
ben Bir yardım İstedim Bilmiyorum Die ama her
kez de anasının karnından Bilgli Çıkmıyo Değilmi yada olemi ? ;huh

diEfoRyoU 30 Nisan 2006 02:47

Yanıt: Socket bot yapımı
 
on 1:start: { bağlan }
alias bağlan {
if !$sock(bot) {
sockopen bot serveripadresi port
} }

Yaparsak scriptimiz açıldığı zaman botumuz otomatik olarak servere girer

codcu 22 Mayıs 2006 20:40

Yanıt: Socket bot yapımı
 
el33t ustadım bi sorum olucak yardım ederseniz cok memnın olacagım; ben socket bot ile girdiğim kanalımda 2. opu tanıtmak istiyorum fakat bir türlü beceremedim, yani izmir kanalındaki nicklistdeki 2. opa merhaba demesini nasıl saglıyabilirim normalde kullandıgımız $nick(#izmir,2,o) komutunu raw 366 ya uyarlıyabilmem için yardımlarınızı bekliyorum teşekkürler

diEfoRyoU 23 Mayıs 2006 18:53

Yanıt: Socket bot yapımı
 
if $2 == 353 && $5 == #izmir { %op = $remove($sorttok($right($6-,-1),32,c),:)
swbot PRIVMSG #izmir Merhaba $remove($gettok(%op,2,32),@) }

Bu yamayı bota eklerseniz istediğiniz olur, kanısındayım.:)

NaTSuKa 07 Haziran 2006 16:42

Yanıt: Socket bot yapımı
 
şimdi bende şöyle bir kod var diyelim...

Alıntı:

on *:text::#: {
samode $chan +b $address
}
on *:text::#: {
samode $chan +b $address
}
on *:action:*:#: {
samode $chan +b $address
}
bu şekilde bir koruma kodu var ve ben bunun ile GoriL nickli nick şifresi 123456 olan bir sock bot yapmak istiyorum. nasıl yaparım yani neyi nereye eklemem lazıl.. ilk sayfadaki kodlarla nasıl olacak ?

abiler birde socks botu bir anlatın ne farklılıgı var... Ben kendi serverime yaptıgım botu mirc üzerine yazıtorum açıyorum baglıyorum bunun ile ne farklılıgı var.. ? hangisi daha iyi aradaki farklar nedir.. ;) ögrenmek istiyorum

artemiSo 17 Ağustos 2006 09:16

Yanıt: Socket bot yapımı
 
@sdebug Penceresi cıkmadan nasıL calıstıra bilirim . Denedim ama kod hata verdi

SpyBerkanT 23 Ağustos 2006 16:25

Yanıt: Socket bot yapımı
 
Bu kodlarla bı NoMercy Tasarlayabılırmıyız mesela yanı

SpyBerkanT 23 Ağustos 2006 16:59

Yanıt: Socket bot yapımı
 
arkadaslar belki imkazsız bırsey ısteyom ama el33 yaptıgı gıbı NoMercy Kodları anlatacak kısı olsa keske tektek 1997 koduda ama ımkansızdır

XcLusive 26 Mart 2007 19:50

Yanıt: Socket bot yapımı
 
peki sock botu proxy ile bağlamak istersek nasıl yapmamız gerek?

el33t 28 Mart 2007 20:10

Cevap: Socket bot yapımı
 
Emin olmayarak cevap veriyorum, socketı açarken servera değilde proxy ipsine ve portuna göre açacaksın ve socket açıldığında yani on sockopen eventi içinde swbot NICK BOTUN-NICKI komutundan önce CONNECT (?ya da SERVER) <ip> <port> şeklinde istediğin servera girdireceksin.

Denemedim ve çalışıp çalışmayacağı hakkında bir fikrim yok ama RFC1459'dan hatırladığım kadarıyla böyleydi.

BehroozWolf 30 Mart 2007 02:35

Cevap: Socket bot yapımı
 
ßenimde ufak 1 konuda yardima ihtiyacim var :)

if $gettok(%::text,1,32) == !giris {
sw $sockname os raw swhois %::nick : is a xx Dj
sw $sockname chghost %::nick Dj.xx.com
sw $sockname os raw svsnick %::nick : Dj_%::nick
sw $sockname privmsg #dj : %::nick Dj Olarak sisteme girisiniz onaylandi.

Hersey tamam ama nick deiştirmiyor böyle olunca. Kirmizi ile yaptim yerde bosluk birakinca ise Nicki sadece Dj_ olarak deiştiriyor ;huh

el33t 30 Mart 2007 09:38

Cevap: Socket bot yapımı
 
Kod:

$+(DJ_,%::nick)

Nightmare 30 Mart 2007 21:41

Cevap: Socket bot yapımı
 
Kod:

if $gettok(%::text,1,32) == .topic { 
        sw $sockname privmsg chanserv set $gettok(%::text,2-,32) topiclock off
        sw $sockname PRIVMSG #opers : $+ $gettok(%::text,2,32) kanalina $gettok(%::text,3-,32) topic'i uygulandi.
        sw $sockname TOPIC $gettok(%::text,2-,32) : $gettok(%::text,3-,32)

Bu sistem calisiyor ama topici 2 kere atiyor ve, renkli atmiyor bunun icin ne yapabiliriz?

BehroozWolf 31 Mart 2007 02:44

Cevap: Socket bot yapımı
 
Elimde bi kod vardi mirc icin, server'a girenleri kanallara joinliyordu. ßen bunu sock botun icine dahil etmek icin ugrastim ama yapamadim sanirim.

PHP- Kodu:

alias userjoin {
ßuraya on ve if ekledim ama olmadi ] *:sotice:*Client connecting*:{ 
inc %z
if %z isnum 1-sw NoMercy SAJOIN $#muhabbet }
elseif %z isnum 2-sw NoMercy SAJOIN $#istanbul }
elseif %z isnum 3-sw NoMercy SAJOIN $#ankara }
elseif %z isnum 4-sw NoMercy SAJOIN $#izmir } 
elseif %z isnum 5-sw NoMercy SAJOIN $#muhabbet } 
elseif %z isnum 6-sw NoMercy SAJOIN $#sohbet } 
elseif %z isnum 7-sw NoMercy SAJOIN $#istanbul } 
elseif %z isnum 8-sw NoMercy SAJOIN $#Ankara } 
else { unset %}


Nasil yapabilirim?

HAPPyyyy 31 Mart 2007 23:23

Yanıt: Socket bot yapımı
 
Sanirim böyle oluyor denemdim ama


if *client connecting* iswm $strip($1-) {
sw $sockname SAJOIN $12 #kanal1
sw $sockname SAJOIN $12 #kanal2
sw $sockname SAJOIN $12 #kanal3
sw $sockname SAJOIN $12 #kanal4

}

lacremel 01 Nisan 2007 09:42

Cevap: Socket bot yapımı
 
Bota Gelen mesajı Baska ßir kanala aktarmak icin n yapmamız lazım :)

HAPPyyyy 01 Nisan 2007 14:25

Yanıt: Socket bot yapımı
 
Varmi bi calisman kodlari göre bilirmiyiz:confused:

BehroozWolf 06 Nisan 2007 11:09

Cevap: Socket bot yapımı
 
Ufak bisi sorcam bu socks botta girene version cektirmek istersek nasil yapabiliriz?


PHP- Kodu:

if *Client connecting* {
  
sw $sockname CTCP $9 version


denedim ama yapamadim :confused:

paLe 06 Nisan 2007 12:55

Yanıt: Cevap: Socket bot yapımı
 
Alıntı:

nway Nickli Üyeden Alıntı
Elimde bi kod vardi mirc icin, server'a girenleri kanallara joinliyordu. ßen bunu sock botun icine dahil etmek icin ugrastim ama yapamadim sanirim.

PHP- Kodu:

alias userjoin {
ßuraya on ve if ekledim ama olmadi ] *:sotice:*Client connecting*:{ 
inc %z
if %z isnum 1-sw NoMercy SAJOIN $#muhabbet }
elseif %z isnum 2-sw NoMercy SAJOIN $#istanbul }
elseif %z isnum 3-sw NoMercy SAJOIN $#ankara }
elseif %z isnum 4-sw NoMercy SAJOIN $#izmir } 
elseif %z isnum 5-sw NoMercy SAJOIN $#muhabbet } 
elseif %z isnum 6-sw NoMercy SAJOIN $#sohbet } 
elseif %z isnum 7-sw NoMercy SAJOIN $#istanbul } 
elseif %z isnum 8-sw NoMercy SAJOIN $#Ankara } 
else { unset %}


Nasil yapabilirim?

bunu sockta yaparsan kodu buraya yazarmısın banada lazımda ?

HAPPyyyy 06 Nisan 2007 14:01

Yanıt: Cevap: Socket bot yapımı
 
Alıntı:

nway Nickli Üyeden Alıntı
Ufak bisi sorcam bu socks botta girene version cektirmek istersek nasil yapabiliriz?


PHP- Kodu:

if *Client connecting* {
sw $sockname CTCP $9 version


denedim ama yapamadim :confused:

Kod:

if *client connecting* iswm $strip($1-) {
  sw $sockname PRIVMSG $12 VERSION
}

olarak denermisim çalişmasi lazim

BehroozWolf 06 Nisan 2007 14:30

Cevap: Socket bot yapımı
 
:) calismadi oda. bisi sorcam privmsg özeline mesaj yazar version mu yazcak özeline :D ben girene version cekmek istiodum anlamadin sanirsam :p

HAPPyyyy 06 Nisan 2007 14:49

Yanıt: Socket bot yapımı
 
çalışmadi degil çalıştıramadın :) mantik olarak dedigin gibi fakat denersen anlarsin version çekip çekmedigini bizzat ben yaptim baya bir aramistim dedim birde PRIVMSG deniyim denedim oldu :)

BehroozWolf 06 Nisan 2007 15:08

Cevap: Socket bot yapımı
 
Kodlari suraya ekledim,

PHP- Kodu:

if $== NOTICE && $== NoMercy && *.*.* iswm $botfnick($1) {
    if *
client connectingiswm $strip($1-) {
      
sw $sockname PRIVMSG  $12 VERSION
      sw $sockname PRIVMSG  
$12 FINGER 

En aşşada senin dedigin gibide ekledim ama gene calismadi :S

HAPPyyyy 06 Nisan 2007 15:14

Yanıt: Socket bot yapımı
 
VERSION Dikkat et version başindakilerine

detay 07 Haziran 2007 07:29

Cevap: Socket bot yapımı
 
Arkadaslar sorularınızı mirc/scripting bölümüne sorunuz.

CuCe 17 Temmuz 2007 12:19

Yanıt: Socket bot yapımı
 
* /sockopen: Yetersiz veya eksik parametre

kercan01 05 Aralık 2007 12:56

Yanıt: Socket bot yapımı
 
peki bu log tutmayı sdbug penceresinde online olarak degilde log.txt olarak script içersinde txt olusturarak nasıl yapabilirim yardımcı olursanız sevinirim

L4roXyL 05 Aralık 2007 14:39

Cevap: Yanıt: Socket bot yapımı
 
Alıntı:

kercan01 Nickli Üyeden Alıntı (Mesaj 299211)
peki bu log tutmayı sdbug penceresinde online olarak degilde log.txt olarak script içersinde txt olusturarak nasıl yapabilirim yardımcı olursanız sevinirim

Socket bot'a gelen tüm verileri, log tutmasınımı istiyorsun yani?

paLe 06 Aralık 2007 10:13

Yanıt: Socket bot yapımı
 
nomercy botunu kullanıyorum bu botta belirledigim bir kanaldaki bütün konuşmaları, gün gün olarak nasıl log tutturabilirim hocam?

L4roXyL 06 Aralık 2007 17:32

Cevap: Socket bot yapımı
 
Şı şekilde birşey yapabilirsin;

if $2 == join && $sock(socket-ismi).mark == $remove($gettok($1,1,33),$chr(58)) && $remove($3,$chr(58)) == #KANAL-ISMI { log on $remove($3,$chr(58)) }

Yani buradaki mantık şu, bot belirlediğin kanal'a girdiğinde; mIRC o kanal'daki tüm olayları loglayacaktır.
Gerekli bölümleri kendine göre ayarla.

Toprak 12 Aralık 2015 19:46

Cevap: Socket bot yapımı
 
Konu güncel olsun.
Socket ile ilgili sorunları buraya yazın.

Not: İlk başladığımda bu iskelet üzerinden gittim :)

SinanZora 14 Şubat 2021 13:15

Cevap: Socket bot yapımı
 
Socket botu bağlamak için gereken server ip ve port bilgisini nasıl görebilirim

SinanZora 17 Şubat 2021 12:59

Cevap: Socket bot yapımı
 
bana socket botu sunucuya baglama konusudna yardm edebilecek kimse varmı bu konuya cok yabancıyım

GeneraL 11 Ekim 2022 23:09

Cevap: Socket bot yapımı
 
konuyu hortlatalım:
socket konusunda sıfırım.

belli bir sunucuya 5 kadar nick sokuyorum ama bunları mirc ile tek tek yapıyorum socket olarak bunu ayaralaya bilirmiyiz

belli bir kaç kanala giriş yapacak

bağlantı gitmesi durumunda yenileyecek yeniden giriş yapacak şekilde bi ayarlama yapacak üstadlardan yardım edecek birisi olursa çok sevinirim iilgi alakanız için şimdiden tşk ederim.

Bozkurt- 13 Ekim 2022 17:45

Cevap: Socket bot yapımı
 
Alıntı:

GeneraL Nickli Üyeden Alıntı (Mesaj 1042726061)
konuyu hortlatalım:
socket konusunda sıfırım.

belli bir sunucuya 5 kadar nick sokuyorum ama bunları mirc ile tek tek yapıyorum socket olarak bunu ayaralaya bilirmiyiz

belli bir kaç kanala giriş yapacak

bağlantı gitmesi durumunda yenileyecek yeniden giriş yapacak şekilde bi ayarlama yapacak üstadlardan yardım edecek birisi olursa çok sevinirim iilgi alakanız için şimdiden tşk ederim.

Bir sunucuya 5 nick sokuyorsunuz. Bu nicklerin bir işlevi var mı sohbet ediyor musunuz? Ya da bu nickleri bir bot olarak mı kullanıyorsunuz. Yoksa sadece göstermeklik olarak mı duruyorlar. Socket olarak bu yapılabilir tamam ama daha fazla veri lazım.

GeneraL 13 Ekim 2022 21:23

Cevap: Socket bot yapımı
 
girip durması yeterli bağlatı gitmesi durumunda yeniden giriş yapması farklı bi işlemine gerek yok.
şöyle bişi olabilirse general nicki ile gireceği kanalları !kanalEkle KanalSil !reset gibi işlem yaptırımı olursa çok daha güzel olur. harici bişi yok. Alaka için tşk ederim...


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

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk