IRCRehberi.Net- Türkiyenin En iyi IRC ve Genel Forum Sitesi

IRCRehberi.Net- Türkiyenin En iyi IRC ve Genel Forum Sitesi (https://www.ircrehberi.net/)
-   Unreal IRCd (https://www.ircrehberi.net/unreal-ircd/)
-   -   UnrealIRCD 3x İlk Modululumu Yapiyorum - Ders - 2 Makrolar - (https://www.ircrehberi.net/unreal-ircd/102802-unrealircd-3x-ilk-modululumu-yapiyorum-ders-2-makrolar.html)

OmerAti 31 Ocak 2022 13:28

UnrealIRCD 3x İlk Modululumu Yapiyorum - Ders - 2 Makrolar -
 
Merhaba Arkadaşlar,

UnrealIRCD Modül Api Dersimiz Kaldigi Yerden Devam Ediyor...


Konu: UnrealIRCD Makrolar
Ders: 2. Seviye


"HOOKTYPE_PRE_LOCAL_CONNECT" Makrosu Nedir Ne'ye Yarar

Yerel bir kullanıcı bağlandığında çağrılır, kullanıcının duraklatılmasına veya reddedilmesine izin verir

HOOKTYPE_PRE_LOCAL_CONNECT için işlev prototipi

Parametreler
aClient (Giren Kişi veya İstemci)
aClient *sptr
aClient *cptr
aClient *acptr


Dönüş değerleri
HOOK_DENY Bağlantıyı durdurun (basılı tutun/duraklatın).
HOOK_ALLOW Bağlantıya izin ver (diğer modülleri işlemeyi durdur)
HOOK_CONTINUE Başka bir modül engellemediği sürece bağlantıya izin verin.

- Ne'ye Yarar -

HOOKTYPE_PRE_LOCAL_CONNECT Makrosunu kullanarak sunucuya giriş yapanların henüz sunucuya ulaşmadan:

Ident Korumasi Yapabilirsiniz
Yasaklı IP Adresi Yapabilirsiniz
RealName Korumasi Yapabilirsiniz
Istenilen Portu Şifre Koymadan WEBIRC(CGIIRC) Kontrolu Yapabilirsiniz
Kullanıcısı Sayısı Belirleyip Kullanıcı Sayısı Aşımı Oldumu Başka Sunucuya Yönlendirebilirsiniz..
Version Çekip Gelen Cevabi Ban Version Bloguyla Eşleştire Bilir Baglantıyı Kesebilirsiniz..
Kod Sorgulaması Yapıp Istenilen Cevap Gelmese Baglantıyı Kesebilirsiniz..
Edit Yapmadan Girişte Karşılama Mesajı vs Gibi Olaylar Gönderebilirsiniz..
Ve Hayal Gücünüzü Kullanıp Daha Fazlasını Yapabilirsiniz..

Örnek Kodlama Yapalım Ve Hatırlanacagı Uzere İlk Dersimizde Kullandıgımız "Modul Oluşturma" Kullanacaz

me.name = Kullanim Sebebi Sunucu Ismini Almamiz
acptr->name = Kullanim Sebebi Girenin Nick'i Almamiz
acptr->listener->port = Istemcinin veya Kisinin Portunu Tespit Etmemiz
IsCGIIRC = CGIIRC Web/Mobil/ZChat/ZSohbet/QWeb/Kiwiirc ve Apletmi veya Clientmi Kontrolu Yapip İşlem Yapmak İçin Kullanıldı

[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...]

Girişte Bağımsız Bir Şekilde Mesaj Attirip ve Ek Olarak Altınızı Çiziyorum Ek Olarak 7033 Portunu Koruyacaz Şifresiz Bir Şekilde !

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"
#include "proto.h"
#ifdef STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif

#define MOBILPORT 7033 // Buraya Korunacak Portu Yaziyoruz Ben 7033 Olarak Belirledim

DLLFUNC int m_baglan(aClient *acptr); // m_baglan adinda fonksiyon kullaniyoruz ve parametremizi aClient'imizi acptr olarak belirliyoruz

ModuleHeader MOD_HEADER(m_ilkmodulum)
  = {
        "m_ilkmodulum",
        "v1",
        "Bu Benim Ilk Modul Denemem",
        "3.2-b8-1",
        NULL
    };

DLLFUNC int MOD_INIT(m_ilkmodulum)(ModuleInfo *modinfo)
{

      HookAddEx(modinfo->handle, HOOKTYPE_PRE_LOCAL_CONNECT, m_baglan); // Çagrılacak Kancamızı HookAddEx olarak belirledik ve m_baglan fonksiyonumuzu çagirdik
       
        MARK_AS_OFFICIAL_MODULE(modinfo);
        return MOD_SUCCESS;
}

DLLFUNC int MOD_LOAD(m_ilkmodulum)(int module_load)
{
        return MOD_SUCCESS;
}

DLLFUNC int MOD_UNLOAD(m_ilkmodulum)(int module_unload)
{

        return MOD_SUCCESS;
}

// Fonksiyonumuzu ve paremetremizi açtık kodlarimizi ve yapılacak işlemleri yazabiliriz..

DLLFUNC int m_baglan(aClient *acptr)
{
// Bagimsiz Olarak Giris Yapana Hos Geldin Mesaji Gönderiyoruz

sendto_one(acptr, ":%s NOTICE %s :*** Sunucusuna Hos Geldiniz Keyifli Sohbetler", me.name, acptr->name);

// Eger port numarasi 7003 ise ve gelen istek CGIIRC Blogu Degilse kullaniciya Sunucuya Alma Ve Exit Client ver Dedik
if (MOBILPORT == acptr->listener->port && !IsCGIIRC(acptr))
 return exit_client(acptr, acptr, acptr, "Lutfen mobil sohbet sayfamizdan giris yapiniz.");
return 0;

}

Modülümüzü Oluşturduk

Ekran Görüntüsü

Sunucuya Baglanirken Verdigimiz Mesaj

[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...]

7033 Portuyla Baglanirken exit client ve verilen mesaj

[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...]

/module komutunda görünen bilgiler

[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...]

IRCRehberi.Net
Anlatım: OmerAti

Reyhan 31 Ocak 2022 13:33

Anlatımınız için teşekkürler, emeğinize sağlık :erk:

Nichts 31 Ocak 2022 13:45

@[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...] , emeğine, yüreğine sağlık. Teşekkürler.

WildCat 31 Ocak 2022 13:55

emeginize saglik paylasim icin tesekkur ederiz

Saruhan 02 Şubat 2022 13:05

Anlatım için eğitici paylaşım için emeğine sağlık

Sim 02 Şubat 2022 16:42

emegine saglik

She 03 Şubat 2022 12:16

Emeğinize sağlık, @[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...]

Ada 05 Şubat 2022 20:57

@[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...] emeğinize sağlık.

oMeN 07 Şubat 2022 15:25

Hırsına ve azmine sağlık @[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...]

Keanu 07 Şubat 2022 15:26

Elinize sağlık @[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...] , gayet açıklayıcı olmuş.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 12:30.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.

Copyright ©2019 - 2025 | IRCRehberi.Net