Merhaba arkadaşlar.
Modül uzantısı -> m_portkontrol.c olup, çalışma sistemi tamamen modül içerisine belirtilen PORT'(lar) doğrultusun da haraket eder, port girişine göre de #Güvenlik kanalına alınır ve o esnada hiçbir komutu uygulayamaz..
DIPNOT: Birden fazla port için, if satırlarının // başından kaldırınız..
#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 #define ACIKLAMA "Port korumasi by Entrance" /* -> Oper kanalına bilgi. */ #define RAPOR "#Opers" /* -> Kullanıcıya gönderilecek uyari.*/ #define Kullanici " Kullanmış olduğunuz PORT sunucumuz üzerinde yasaktır, bu nedenle güvenlik kanalına alındınız .." /* -> Korumaya takilanlarin alinacagi kanal. */ char *knl = "#Güvenlik"; char *ent[3], channels[512]; DLLFUNC int m_portkontrol(aClient *, aChannel *); ModuleHeader MOD_HEADER(m_portkontrol) = { "m_portkontrol.c", ACIKLAMA, ACIKLAMA, "3.2-b8-1", NULL }; DLLFUNC int MOD_INIT(m_portkontrol)(ModuleInfo *modinfo) { HookAddEx(modinfo->handle, HOOKTYPE_LOCAL_CONNECT, m_portkontrol); return MOD_SUCCESS; } DLLFUNC int MOD_LOAD(m_portkontrol)(int module_load) { return MOD_SUCCESS; } DLLFUNC int MOD_UNLOAD(m_portkontrol)(int module_unload) { return MOD_SUCCESS; } DLLFUNC int m_portkontrol(aClient *sptr, aChannel *E) { if (MyConnect(sptr) || !IsULine(sptr) || !IsServer(sptr)) { if (sptr->listener->port != 1988) //if (sptr->listener->port != 1986) //if (sptr->listener->port != 1987) //if (sptr->listener->port != 1988) //if (sptr->listener->port != 1989) return 0; SetShunned(sptr); if ((E = find_channel(RAPOR, NullChn)) != NullChn) sendto_channel_butone(&me, &me, E, ":PORT PRIVMSG %s :Korumasına takılan, NICK: -> \2%s\2 IDENTD: -> \2%s\2 IP: -> \2%s\2", RAPOR, sptr->name, sptr->user->username, sptr->user->realhost); sendto_one(sptr, ":UYARI PRIVMSG %s :%s", sptr->name, Kullanici); strlcpy(channels, knl, sizeof(channels)); ent[0] = sptr->name; ent[1] = channels; ent[2] = NULL; return do_cmd(sptr, sptr, "JOIN", 2, ent); } return 0; }