Tekil Mesaj gösterimi
Alt 15 Şubat 2010, 14:26   #1
Çevrimdışı
toXic
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Badnick Korumasi




Services ile yaptiğim basit bir işlemlerden sonra isteklerin rahatsizlik boyutuna ulasmasi nedeni ile daha böyle bir modulu yayinlama gereği duydum, zaten basit bir modul, badlisti regex olarak inceler, yani nick eklediginizde nick38823 gibi nickleride kapsar..


Badnicklerin giriste Nicklerini degiserek uyari verir..


Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include "config.h" #include "struct.h" #include "common.h" #include "sys.h" #include "numeric.h" #include "msg.h" #include "channel.h" #include <time.h> #include <sys/stat.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #ifdef _WIN32 #include <io.h> #endif #include <fcntl.h> #include "h.h" #ifdef _WIN32 #include "version.h" #endif static Hook *Connick; static int m_badnick(aClient *, aChannel *); ModuleHeader MOD_HEADER(m_badnickname) = { "m_badnick", "Badnick degistirme. (toXic)", "badnickleri degistirme Modulu(toXic)", "3.2-b8-1", NULL }; DLLFUNC int MOD_INIT(m_badnickname)(ModuleInfo *modinfo) { Connick = HookAddEx(modinfo->handle, HOOKTYPE_LOCAL_CONNECT, m_badnick); return MOD_SUCCESS; } DLLFUNC int MOD_LOAD(m_badnickname)(int module_load) { return MOD_SUCCESS; } DLLFUNC int MOD_UNLOAD(m_badnickname)(int module_unload) { return MOD_SUCCESS; } static char *badlistesi[] = { "ibo", "***olog", NULL }; static int bad_listesi(char *nick) { char **blist; for (blist=badlistesi; *blist; *blist++) { if (strstr(nick, *blist)) return 1; } return 0; } static int m_badnick(aClient *sptr, aChannel *chptr) { if (bad_listesi(sptr->name)) { char guestnick[NICKLEN]; char *ibo[3]; aChannel *cptr; snprintf(guestnick, NICKLEN, "KelebekGenTR%d", getrandom32()); while(find_client(guestnick, (aClient *)NULL)) { snprintf(guestnick, NICKLEN, "KelebekGenTR%d", getrandom32()); } #define Kontrol "#Badnick" #define aciklama1 "Kullanmis oldugunuz nick sakincalidir." #define aciklama2 "Bu Nedenle, Nickiniz değiştirilmiştir." #define aciklama3 "Nickinizi Uygun Bir sekilde \2/Nick Yeninick\2 Komutu ile değiştirebilirsiniz." ibo[0] = sptr->name; ibo[1] = guestnick; ibo[2] = NULL; do_cmd(sptr, sptr, "NICK", 2, ibo); sendto_one(sptr, ":BADBOY NOTICE %s :%s", sptr->name, aciklama1); sendto_one(sptr, ":BADBOY NOTICE %s :%s", sptr->name, aciklama2); sendto_one(sptr, ":BADBOY NOTICE %s :%s", sptr->name, aciklama3); return 0; } }

Diğeri ise, Badnickler, sunucuya girince, normal kanallara giriyor, bunlara özel bir kanalda ekledim #***,#cinsellik vs..

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#include "config.h" #include "struct.h" #include "common.h" #include "sys.h" #include "numeric.h" #include "msg.h" #include "channel.h" #include <time.h> #include <sys/stat.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #ifdef _WIN32 #include <io.h> #endif #include <fcntl.h> #include "h.h" #ifdef _WIN32 #include "version.h" #endif static Hook *Connick; static int m_badnick(aClient *, aChannel *); ModuleHeader MOD_HEADER(m_badnickname) = { "m_badnick", "Badnick Korumasi (toXic)", "badnick Security(toXic)", "3.2-b8-1", NULL }; DLLFUNC int MOD_INIT(m_badnickname)(ModuleInfo *modinfo) { Connick = HookAddEx(modinfo->handle, HOOKTYPE_LOCAL_CONNECT, m_badnick); return MOD_SUCCESS; } DLLFUNC int MOD_LOAD(m_badnickname)(int module_load) { return MOD_SUCCESS; } DLLFUNC int MOD_UNLOAD(m_badnickname)(int module_unload) { return MOD_SUCCESS; } static char *badlistesi[] = { "ibo", "toxic", NULL }; static int bad_listesi(char *nick) { char **blist; for (blist=badlistesi; *blist; *blist++) { if (strstr(nick, *blist)) return 1; } return 0; } static int m_badnick(aClient *sptr, aChannel *chptr) { char *kanal = "#***,#cinsellik"; char *i[3], channels[512]; #define Kontrol "#Badnick" #define aciklama1 "Kullanmis oldugunuz nick sakincalidir." #define aciklama2 "Bu Nedenle, Cinsellik Kanalina ALİNİYORSUNZUZ" #define aciklama3 "Diger Kanallara girmek icin, NİCKİNİZİ Uygun bir hale getiriniz." if (bad_listesi(sptr->name)) { if ((chptr = find_channel(Kontrol, NullChn)) != NullChn) sendto_channel_butone(&me, &me, chptr, ":Badnick PRIVMSG %s : Badnick Girisi tespit edildi. Nick: \2%s\2 Cinsellik Kanalina Alindi..", Kontrol, sptr->name); sendto_one(sptr, ":BADBOY NOTICE %s :%s", sptr->name, aciklama1); sendto_one(sptr, ":BADBOY NOTICE %s :%s", sptr->name, aciklama2); sendto_one(sptr, ":BADBOY NOTICE %s :%s", sptr->name, aciklama3); /* Dosyaya yazdirma.. */ time_t irc_time; struct tm tdate; irc_time = time(NULL); tdate = *localtime(&irc_time); FILE * pFile; pFile = fopen ("badlog.txt", "a"); fprintf (pFile, "Tarih: %02d-%02d-%02d Saat: %02d:%02d Nick: %s IP: %s \n", tdate.tm_mday, tdate.tm_mon + 1, tdate.tm_year - 100, tdate.tm_hour, tdate.tm_min, sptr->name, sptr->user->realhost); fclose (pFile); sendto_realops("BADNAME: %s nin nicki badnick olarak kaydedilmisti. Gereken yapildi.", sptr->name); strlcpy(channels, kanal, sizeof(channels)); i[0] = sptr->name; i[1] = channels; i[2] = NULL; do_cmd(sptr, sptr, "JOIN", 2, i); do_cmd(sptr, sptr, "PART", 1, i); } return 0; }

Bunda da girişte kullanicilari #*** ve #cinsellik kanalina alir. Bad nick girisi yapan kullanicilarin IP ve Nicklerini badlist.txt 'ye ekler. Ayrica, OPERSLERE Özel mesaj atar statuse..
Bununla birlikte, badnickleri #Badnick kanalinda gösterir.


Alıntı:
Tarih: 15-02-10 Saat: 06:25 Nick: XX IP: 85.105.110.32
Tarih: 15-02-10 Saat: 06:29 Nick: X IP: 85.105.110.32
Tarih: 15-02-10 Saat: 06:29 Nick: X IP: 85.105.110.32
Tarih: 15-02-10 Saat: 06:31 Nick: X IP: 85.105.110.32
Tarih: 15-02-10 Saat: 06:31 Nick: XX IP: 88.234.45.218
Tarih: 15-02-10 Saat: 06:32 Nick: X IP: 85.105.110.32
Tarih: 15-02-10 Saat: 06:32 Nick: X IP: 85.105.110.32
Tarih: 15-02-10 Saat: 06:32 Nick: X IP: 85.105.110.32
Tarih: 15-02-10 Saat: 06:42 Nick: XX IP: 85.105.110.32
Tarih: 15-02-10 Saat: 06:43 Nick: XX IP: 85.105.110.32
Tarih: 15-02-10 Saat: 06:43 Nick: XX IP: 85.105.110.32
Tarih: 15-02-10 Saat: 06:44 Nick: XX IP: 85.105.110.32
Tarih: 15-02-10 Saat: 06:45 Nick: XX IP: 85.105.110.32

badnickleri

static char *badlistesi[] = {
"ibo",
"toxic",
NULL
};

buraya ekleyeceksiniz alt alta;
"ibo",
"hasan",
"sakir,"
"osman",

vs..

-Bunda da girişte kullanicilari #*** ve #cinsellik kanalina alir. Bad nick girisi yapan kullanicilarin IP ve Nicklerini badlist.txt 'ye ekler.+Bunda da girişte kullanicilari #*** ve #cinsellik kanalina alir. Bad nick girisi yapan kullanicilarin IP ve Nicklerini badlist.txt 'ye ekler. Ayrica, OPERSLERE Özel mesaj atar statuse..
Bununla birlikte, badnickleri #Badnick kanalinda gösterir.

sunucuya girince, normal kanallara giriyor, bunlara özel bir kanalda ekledim #***,#cinsellik vs..

Geliştirmesi size kalmis, örneğin ben dosyadan okutmali kullaniyorum.. Nasıl söyle yaparim böyle yaparim demek yerine araştirirsaniz böyle demenize gerek kalmaz..

iyi calismalar.


Konu toXic tarafından (17 Mayıs 2011 Saat 19:31 ) değiştirilmiştir.
 

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet