IRCServices – (NS ALIST NICK)



Bu kodu servislere eklediğinizde, “/Ns Alist” komutu uygulandığında kullanıcı nickine dair hangi kanallarda erişim var hepsini görebilecektir. Ayrıca, diyelim -ki, adminsiniz ve bir kullanıcının erişim listesini görmek istiyorsunuz, (Bu kodların servislerde ekli olması kaydıyla), Admin kişi – “/Ns Alist Nick” komutunu uyguladığında kullanıcının bütün erişimlerini görebilecektir.

Ayrıca kodların kime ait olduğunu bilmiyorum. Ama büyük ihtimal ile Sky-Dancer , rumuzlu arkadaşa aittir. Kodlar arşivimde duruyordu paylaşmak istedim..

Klasör: ircservices-5.0.x
Dosya: modules/nickserv/main.c

BULUN,

Alıntı:
#include “nickserv.h”
#include “ns-local.h”

ALTINA,

Kod:
#include "modules/chanserv/chanserv.h"
char last_alist_nick[NICKMAX];
#define XOP_LISTNAME(level) \
((level)==ACCLEV_SOP ? " (SOP)" : (level)==ACCLEV_AOP ? " (AOP)" : \
(level)==ACCLEV_HOP ? " (HOP)" : (level)==ACCLEV_VOP ? " (VOP)" : " ")

EKLEYİN,

BULUN,

Alıntı:
static void do_help(User *u);

ÜSTÜNE,

Kod:
static void do_alist(User *u);

EKLEYİN,

BULUN,

Alıntı:
{ “HELP”, do_help, NULL, -1, -1,-1 },

ALTINA,

Kod:
{ "ALIST", do_alist, NULL, -1, -1, -1 },

EKLEYİN,

BULUN,

Alıntı:
/* These are static, so the pointers don’t need to be cleared */
if (cmd_GETPASS)
cmd_GETPASS->name = “GETPASS”;
if (cmd_DROPEMAIL_CONFIRM)
cmd_DROPEMAIL_CONFIRM->name = “DROPEMAIL-CONFIRM”;
if (cmd_DROPEMAIL)
cmd_DROPEMAIL->name = “DROPEMAIL”;
if (cmd_REGISTER)
cmd_REGISTER->name = “REGISTER”;
unregister_commands(module, cmds);
del_commandlist(module);return 1;
}

ALTINA,

Kod:
static void do_alist(User *u) {
	ChannelInfo *ci;
	NickInfo *ni = NULL;
	NickGroupInfo *ngi;
	int32 id;
	int i;
	int liste=0;

	char *nick = strtok(NULL, " ");

	char *snick;

	if (is_oper(u) && nick) {
		snick = nick;
	}
	else {
		snick = u->nick;
	}

	if (!(ni = get_nickinfo(snick))) {
             notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, snick);
	return;
	} else if (ni->status & NS_VERBOTEN) {
              notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, snick);
        return;
	} else if (!user_identified(u)) {
		notice_lang(s_NickServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ);
	return;
	} else if (!(ngi = get_ngi(ni))) {
		notice_lang(s_NickServ, u, INTERNAL_ERROR);
	return;
	}

	if (ni != u->ni)
	    send_cmd(s_NickServ, "NOTICE %s :%s Nickine Ait Erisim Listesi:", u->nick, nick);
	else
	    send_cmd(s_NickServ, "NOTICE %s :Nickinize Ait Erisim Listesi:", u->nick);

    send_cmd(s_NickServ, "NOTICE %s :Kanal  -  Access Seviyesi", u->nick);
strscpy(last_alist_nick, u->nick, NICKMAX);
	for (ci = first_channelinfo(); ci; ci = next_channelinfo()) {

		if (!ci || !valid_ngi(u) || (ci->flags & CI_VERBOTEN) || ci->suspendinfo)
			continue;

		if (ngi->id == ci->founder) {
			send_cmd(s_NickServ, "NOTICE %s :%d. %s - \2founder\2", u->nick, liste+1, ci->name);
			liste++;
		continue;
		}

		id=ngi->id;

	    ARRAY_FOREACH (i, ci->access) {
			if (ci && (ci->access[i].nickgroup == id)) {
			    send_cmd(s_NickServ, "NOTICE %s :%d. %s - Level :\2 %d%s\2", u->nick, liste+1 , ci->name, ci->access[i].level, XOP_LISTNAME(ci->access[i].level));
				liste++;
			continue;
			}
	    }
	}

	if (liste==0) {
		send_cmd(s_NickServ, "NOTICE %s :Kayıt bulunamadı.", u->nick);
	}
	else {
		send_cmd(s_NickServ, "NOTICE %s :(%d) adet kayıt bulundu.", u->nick, liste);
	}
return;
}

EKLEYİN,

Klasör: ircservices-5.0.x
Dosya: modules/nickserv/nickserv.h

BULUN,

Alıntı:
char nick[NICKMAX];

ALTINA,

Kod:
char last_alist_nick[NICKMAX];

EKLEYİN,

IRCServices‘in ana dizininde make ve make install komutlarını uygulayıp, mIRC veya SSH üzerinden de servislerinizi yeniden başlatın işlem tamamlanmış olacaktır. Konunun en başında vermiş olduğum komut ile de, hem kendinizin, hem de kullanıcıların erişim listesini görebilirsiniz.


bir önceki yazım da « konusunu sizler için paylaştım.

IRCServices – (NS ALIST NICK) ile ilgili benzer yazılar



Deprecated: 3.1.0 versionundan beri WP_Query çağrıldığı parametre ile geçerliliğini yitirmiş! caller_get_posts artık kullanılmıyor, yerine ignore_sticky_posts kullanın. in /home/liders/public_html/wp-includes/functions.php on line 5496

IRCServices – (NS ALIST NICK) yazısına yapılan yorumlar




Bir Yorum Yazmak İstermisiniz ?

chat