Neler yeni
MEGAForum - Teknoloji Forumu

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

ircd Baglantı suresini Gosteren modul

Skrillex

MFC Üyesi
Konum
İstanbul
  • Üyelik Tarihi
    3 Şub 2013
  • Mesajlar
    24
  • MFC Puanı
    5
Selam arkadaşlar..

Simdi sizlere sunucu uzerinden Süre bilgisi veren modulu tanıtıcam.. modul oldukca basit vede kullanışlıdır. meraklısına tabiki. size modulu Php kodu halinde gondericem siz normal modul kurulumunda ne gerekiyorsa onu yapacaksınız. degiştirmeniz gereken bi yeri yok.

PHP:
/*
 *   =====================================================
 *   Bağlantı süresi modülü - Yazan : SaW (Nebiliymben)
 *   _____________________________________________________
 *   Kullanim: !sure <nick> (kanalda)
 *   Belirtilen nickin sunucuya giris ya da çıkış zamanını
 *   ve ne kadar süredir bagli olduğunu gosterir.
 *   Verilen nickin en son ne zaman sunucuda bulunduğunu
 *   göstermesi yönüyle "seen" özelliği de taşımaktadır.
 *   nick belirtilmemişse sorgulamayı yapan kişinin
 *   nickini esas alır.
 *   Unreal3.2.7 ve Unreal3.2.6'da test edilmiştir.
 *   Bu beta sürümdur. Herhangi bir hatayla
 *   karşılaşırsaniz bildiriniz.
 *   e-mail: abdullah_tas@mynet.com
 *   =====================================================
 */
#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 STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif
 /* Komut adı */
#define sure "!sure"
/*
* Kanala bilgi mesajı gönderecek nick. 
* Şuanki hali renkli bir nicktir.
* Dilerseniz renksiz bir nick yapabilirsiniz.
*/
#define mesajci "4SüreBilgisi" 
DLLFUNC char *sure_chanmsg(aClient *, aClient *, aChannel *, char *, int);
extern MODVAR aWhowas *WHOWASHASH[WW_MAX];
ModuleHeader MOD_HEADER(m_sure)
  = {
 "m_sure - kisilerin baglanti sureleri hakkinda bilgiler", 
 "v1-beta 18/02/2010",
 "SaW",
 "3.2-b8-1",
 NULL 
    };

DLLFUNC int MOD_INIT(m_sure)(ModuleInfo *modinfo)
{
 HookAddPCharEx(modinfo->handle, HOOKTYPE_CHANMSG, sure_chanmsg);
 return MOD_SUCCESS;
}
DLLFUNC int MOD_LOAD(m_sure)(int module_load) 
{
     return MOD_SUCCESS; 
} 
 
DLLFUNC int MOD_UNLOAD(m_sure)(int module_unload) 
{
    return MOD_SUCCESS; 
}

DLLFUNC char *sure_chanmsg(aClient *cptr, aClient *sptr, aChannel *chptr, char *text, int notice)
{
 /* remote ve diger serverlar etkilenmesin */
 if (!MyClient(sptr))
  return text;
 aWhowas *temp;
 aClient *rumuz;
 char tekst[1024];
 ircsprintf(tekst, "%s", text);
 char saat[1024];
 char *komut = strtok(tekst, " "); /* Kanala gönderilen mesajdaki ilk kelime */
 char *nick = strtok(NULL, " "); /* Kanala gönderilen mesajdaki ikinci kelime */
 char *nick2 = strtok(NULL, " "); /* Kanala gönderilen mesajdaki üçüncü kelime */
 /* Boş mesajsa */
 if (!komut)
  return text;
 /* Mesajdaki ilk kelime sure komutu değilse */
 if (strcmp(komut, sure) != 0)
  return text;
 /* Birden fazla nick belirtilmişse */
 if (nick2)
 {
  sendto_channel_butone(NULL, &me, chptr,
                ":%s PRIVMSG %s :%s, Bir defada bir nick için sorgulama yapabilirsiniz!",
     mesajci, chptr->chname, sptr->name);
  return text;
 }
 /* Bir nick belirtilmiş ve o nick sunucuda bulunmuyorsa */
 if (nick && !find_person(nick, NULL))
 {
  temp = WHOWASHASH[hash_whowas_name(nick)];
  int found = 0;
  found = 0;
  for (; temp; temp = temp->next)
  {
   if (!mycmp(nick, temp->name))
   {
   found++;
   break;
   }
  }
  /* Sunucuda hiç bulunmadıysa */
  if (!found)
  {
   sendto_channel_butone(NULL, &me, chptr,
                ":%s PRIVMSG %s :Belirttiğiniz nick sunucuda bulunmuyor.",
                mesajci, chptr->chname);
   return text;
  }
  /* Son çıkış zamanını bulup şuanki zamandan çıkarıyoruz,
  çıkan sonucu gün/sa/dk/sn cinsine çeviriyoruz */
  if ((TStime() - temp->logoff) > 86400)
   ircsprintf(saat, "%d gün %d sa %d dk %d sn önce buradaydı.",
    ((TStime() - temp->logoff) / 86400),
    (((TStime() - temp->logoff) % 86400) / 3600),
    ((((TStime() - temp->logoff) % 86400) % 3600) / 60),
    (((((TStime() - temp->logoff) % 86400) % 3600) % 60) % 60));
  else if ((TStime() - temp->logoff) > 3600)
   ircsprintf(saat, "%d sa %d dk %d sn önce buradaydı.",
    (((TStime() - temp->logoff) / 3600)),
    (((TStime() - temp->logoff) % 3600) / 60),
    ((((TStime() - temp->logoff) % 3600) % 60) % 60));
  else if ((TStime() - temp->logoff) > 60)
   ircsprintf(saat, "%d dk %d sn önce buradaydı.",
    ((TStime() - temp->logoff) / 60),
    (((TStime() - temp->logoff) % 60) % 60));
  else
   ircsprintf(saat, "sunucudan daha yeni çıktı.");  
   sendto_channel_butone(NULL, &me, chptr,
                ":%s PRIVMSG %s :%s, %s",
                mesajci, chptr->chname, nick, saat);
 }
 /* Bir nick belirtilmiş ve o nick şuan sunucudaysa */
 else if (nick && find_person(nick, NULL) && MyClient(find_person(nick, NULL)))
 {
   rumuz =  find_person(nick, NULL);
   if ((TStime() - rumuz->firsttime) > 86400)
    ircsprintf(saat, "%s, %d gün %d sa %d dk %d saniyedir sunucuda bulunuyor.",
     nick, ((TStime() - rumuz->firsttime) / 86400),
     (((TStime() - rumuz->firsttime) % 86400) / 3600),
     ((((TStime() - rumuz->firsttime) % 86400) % 3600) / 60),
     (((((TStime() - rumuz->firsttime) % 86400) % 3600) % 60) % 60));
   else if ((TStime() - rumuz->firsttime) > 3600)
    ircsprintf(saat, "%s, %d sa %d dk %d saniyedir sunucuda bulunuyor.",
     nick, (((TStime() - rumuz->firsttime) / 3600)),
     (((TStime() - rumuz->firsttime) % 3600) / 60),
     ((((TStime() - rumuz->firsttime) % 3600) % 60) % 60));
   else if ((TStime() - rumuz->firsttime) > 60)
    ircsprintf(saat, "%s, %d dk %d saniyedir sunucuda bulunuyor.",
     nick, ((TStime() - rumuz->firsttime) / 60),
     (((TStime() - rumuz->firsttime) % 60) % 60));
   else
    ircsprintf(saat, "%s sunucuya daha yeni girdi.", nick);
   sendto_channel_butone(NULL, &me, chptr,
                ":%s PRIVMSG %s :%s",
                mesajci, chptr->chname, saat);
 }
 /* Bir nick belirtilmemişse sorgulamayı yapan kişinin nickini esas al */
 else if (!nick)
 {
   if ((TStime() - sptr->firsttime) > 86400)
    ircsprintf(saat, "%s, %d gün %d sa %d dk %d saniyedir sunucuda bulunuyorsunuz.",
     sptr->name, ((TStime() - sptr->firsttime) / 86400),
     (((TStime() - sptr->firsttime) % 86400) / 3600),
     ((((TStime() - sptr->firsttime) % 86400) % 3600) / 60),
     (((((TStime() - sptr->firsttime) % 86400) % 3600) % 60) % 60));
   else if ((TStime() - sptr->firsttime) > 3600)
    ircsprintf(saat, "%s, %d sa %d dk %d saniyedir sunucuda bulunuyorsunuz.",
     sptr->name, (((TStime() - sptr->firsttime) / 3600)),
     (((TStime() - sptr->firsttime) % 3600) / 60),
     ((((TStime() - sptr->firsttime) % 3600) % 60) % 60));
   else if ((TStime() - sptr->firsttime) > 60)
    ircsprintf(saat, "%s, %d dk %d saniyedir sunucuda bulunuyorsunuz.",
     sptr->name, ((TStime() - sptr->firsttime) / 60),
     (((TStime() - sptr->firsttime) % 60) % 60));
   else
    ircsprintf(saat, "%s, sunucuya daha yeni girdiniz.", sptr->name);
     sendto_channel_butone(NULL, &me, chptr,
     ":%s PRIVMSG %s :%s",
     mesajci, chptr->chname, saat);
 }
 return text;
}

size modulu bu sekılde atmayı uygun goruyorum link aracılıgı ile degil. cunku gozden gecirme fırsatı bulabiliyorsunuz bu sekılde.

Normal not.txt olusturup modulu icine kaydediyoruz. sure.c olarak olarak.
sonrasında ftp ve shh putty hesapımızı acıyoruz.

Unreal3.2/src/modules i acıyoruz ftp den. daha sonra olusturdugumuz sure.c yi icine atıyoruz. sure.c.txt oluşucak .txt olan bolumu siliyoruz

Daha sonra Unreal3.2 e gelip. unrealircd.conf bolumu masa ustune kaydediyoruz unrealircd.conf icersinde modul listesine.
PHP:
loadmodule "src/modules/sure.so";
ekliyoruz.. daha sonra kaydedip Ftp hesabımızdan Unreal3.2 icersine unrealircd.conf u gonderiyoruz.

Daha sonra. acık olan putty hesapımıza gelip
PHP:
cd
PHP:
cd Unreal3.2
PHP:
make custommodule MODULEFILE=sure
PHP:
./unreal rehash

yapıyoruz hepsi bu kadar Sonrasında komut bilgisi olarakda

PHP:
!sure nick

Bu komutu ircd sunucunuzun hangi kanal icersinde uygularsanız uygulayın Calısıcakdır.

Saygılarımla..
 
Üst Alt