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
#define module "m_identd"
#define aciklama "Sunucu identd korumasi"
#define unversion "3.2-b8-1"
#define monitor "Koruma"
#define isebeb "Bu identd ile Giris Yapamazsiniz."
#define channel "#Monitor"
static Hook *Connectidentd;
static int connect_identd(aClient *);
ModuleHeader MOD_HEADER(m_identd)
= {
module,
aciklama,
aciklama,
unversion,
NULL
};
DLLFUNC int MOD_INIT(m_identd)(ModuleInfo *modinfo)
{
Connectidentd = HookAddEx(modinfo->handle, HOOKTYPE_PRE_LOCAL_CONNECT, connect_identd);
return MOD_SUCCESS;
}
DLLFUNC int MOD_LOAD(m_identd)(int module_load)
{
return MOD_SUCCESS;
}
DLLFUNC int MOD_UNLOAD(m_identd)(int module_unload)
{
return MOD_SUCCESS;
}
static char *identdlistesi[] = {
"ss*",
"*_*",
NULL
};
static int identd_listesi(char *identd)
{
char **ilist;
for (ilist=identdlistesi; *ilist; *ilist++)
{
if (!strcmp(identd, *ilist))
return 1;
}
return 0;
}
static int connect_identd(aClient *sptr)
{
aChannel *chptr;
if (identd_listesi(sptr->user->username)) {
if ((chptr = find_channel(channel, NullChn)) != NullChn)
sendto_channel_butone(&me, &me, chptr, ":%s PRIVMSG %s :Web identd Korumasi: Nick -> \2%s\2 identd -> \2%s\2 IP -> \2%s\2", monitor, channel, sptr->name, sptr->user->username, sptr->user->realhost);
sendto_one(sptr, ":%s NOTICE %s :%s", monitor, sptr->name, isebeb);
return place_host_ban(sptr, BAN_ACT_ZLINE, "Yasak identd Girisi.", 60);
}
return 0;
}