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:
#include “config.h”
#include “struct.h”
#include “common.h”
#include “sys.h”
#include “numeric.h”
#include “msg.h”
#include “channel.h”
#include
#include
#include
#include
#include
#ifdef _WIN32
#include
#endif
#include
#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”,
“badekle”,
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 #sex,#cinsellik vs..
Kod:
#include “config.h”
#include “struct.h”
#include “common.h”
#include “sys.h”
#include “numeric.h”
#include “msg.h”
#include “channel.h”
#include
#include
#include
#include
#include
#ifdef _WIN32
#include
#endif
#include
#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 = “#sex,#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 #sex 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.
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 #sex ve #cinsellik kanalina alir. Bad nick girisi yapan kullanicilarin IP ve Nicklerini badlist.txt ‘ye ekler.+Bunda da girişte kullanicilari #sex 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 #sex,#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.
Badnick Korumasi - Yorumlar
Yapılan Yorumlar
BENZER İÇERİKLERİlginizi çekebilecek diğer içerikler
Irc Oper Komutlarının Bir Tanesinde Kısaltma 19 Şubat 2011
irc ban parametrelerinin kullanımı 17 Ocak 2011
irc invex komutu 17 Ocak 2011
irc notify kullanımı 17 Ocak 2011
SOSYAL MEDYADA BİZSitemizin sosyal medya hesapları
ÖNE ÇIKAN KATEGORİLER
FACEBOOK'TA BİZ
Hoşgeldiniz
kelebek.gen.tr – kelebek mirc - Tüm Hakları Saklıdır