UnrealIRCd Port Koruması

Aytac

nicktag
Yönetici
Developer
Katılım
4 Şub 2020
Mesajlar
395
Tepkime puanı
144
Puanları
43
Konum
ircland
Web sitesi
www.ircalem.net
Modül adı: m_portkontrol.c

Amacı: 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..

NOT: Birden fazla port için, if satırlarının // başından kaldırınız.

Kod:
#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 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;
}
 
Geri
Üst