IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  sohbet

5Beğeni(ler)
  • 2 Post By Emrehan
  • 1 Post By fLayer
  • 1 Post By DarkLove
  • 1 Post By bilo0202

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 11 Nisan 2017, 14:22   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
adwords.c Modülüne Küçük Bir Eklenti




Merhabalar.

Adwords modülünü hepiniz bilmektesiniz. Conf dosyasından yasaklanan kelimelerin sunucuda kullanımını engeller ve kullanılanları da belirtilen kanala yansıtır. Yapacağımız editle o an sunucuda olmasanız dahi siz yokken olan spamları görebileceksiniz.

Sadece adwords.c modülümüzde işlem yapıyoruz.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#define MSG_ADWORDS "ADWORDS" #define TOK_ADWORDS "WO"

altına,
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#define MSG_SPAMLOKU "SPAMLOGOKU" #define TOK_SPAMLOKU "SLOKU" #define MSG_SPAMLSIL "SPAMLOGSIL" #define TOK_SPAMLSIL "SLSIL"

ekleyin.

-

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
CmdAdwords = AddCommand(modinfo->handle, MSG_ADWORDS, TOK_ADWORDS, m_adwords);

altına,
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
CmdAdwords = AddCommand(modinfo->handle, MSG_SPAMLOKU, TOK_SPAMLOKU, spamlogoku); CmdAdwords = AddCommand(modinfo->handle, MSG_SPAMLSIL, TOK_SPAMLSIL, spamlogsil);

ekleyin.

-

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/* * adword_checkmsg * =============== * * The badword checking stuff was copied from src/badwords.c, * I modified it a lot. */

altına,
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
static char *FullDate(TS time_in) { struct tm *tp = localtime(&time_in); if (!tp) return NULL; memset(&mybuf, 0, sizeof mybuf); strftime(mybuf, sizeof mybuf, "%d-%m-%Y - %H:%M:%S", tp); return mybuf; }

ekleyin.

-

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
for (name = strtoken(&p, tmp, ","); name; name = strtoken(&p, NULL, ",")) if ((chptr = find_channel(name, NullChn)) != NullChn) SendNotice_channel;

altına,
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
FILE *spamlog; spamlog = fopen("spamlog.db","a+"); if (spamlog != NULL) { fprintf(spamlog, "[%s] [ SPAM ] Yapan: %s - Yapilan: %s - Mesaj: %s\n", FullDate(from->lasttime), from->name, to ? to : "", str); fclose(spamlog); }

ekleyin.

-

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
static void adwords_event_kill(char *name) { aClient *cptr; if ((cptr = find_person(name, NULL))) exit_client(cptr, cptr, &me, myconf.kill_reason ? myconf.kill_reason : DEF_KILL_REASON); }

altına,
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
int spamlogoku(aClient *sptr){ if (!IsNetAdmin(sptr)) { sendnotice(sptr,"*** \2%s\2, bu komutu kullanmaya yetkiniz yoktur.", sptr->name); return 0; } #define spmoku "spamlog.db" FILE *p; char buf[BUFSIZE]; p = fopen(spmoku, "r"); sendnotice(sptr,"*** --- Loglanan Spam Listesi ---"); if (p) { while (fgets(buf, sizeof(buf), p)) { buf[strlen(buf)-1] = 0; sendnotice(sptr,"*** %s", buf); } fclose(p); sendnotice(sptr,"*** --- Loglanan Spam Listesi Sonu ---"); } else { sendnotice(sptr,"*** Henuz bir spam kaydi yok."); } } int spamlogsil(aClient *sptr){ if (!IsNetAdmin(sptr)) { sendnotice(sptr,"*** \2%s\2, bu komutu kullanmaya yetkiniz yoktur.", sptr->name); return 0; } system("rm -rf spamlog.db"); sendnotice(sptr,"*** --- Spam Log dosyasi silindi."); return 0; }

ekleyin.

Son olarak da make custommodule MODULEFILE=modulismi şeklinde modülü derleyip rehash çekiyoruz.

Kısaca mantığı anlatayım. Komut erişimlerini NetworkAdmin'e verdim.
Belirtilen kanala yansıyan spamlar, spamlog.db adında bir dosyaya kaydedilir.
/spamlogoku komutuyla da listeye kaydedilen spamları, gün-ay-yıl + saat-dakika-saniye : yapan-yapılan-yaptığımesaj şeklinde size gösterir.

Liste bir zaman sonra bayağı şişeceği için /spamlogsil komutunu yaptım. Bu komutla da listeyi, yani spamlog.db dosyasını sıfırlayabilirsiniz.

İyi forumlar.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları sohbet odaları Benimmekan Mobil Sohbet
Alt 11 Nisan 2017, 14:37   #2
Çevrimiçi
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (1)
IF Ticaret Yüzdesi:(%)
Cevap: adwords.c Modülüne Küçük Bir Eklenti




Emrehan Nickli Üyeden Alıntı
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Merhabalar.

Adwords modülünü hepiniz bilmektesiniz. Conf dosyasından yasaklanan kelimelerin sunucuda kullanımını engeller ve kullanılanları da belirtilen kanala yansıtır. Yapacağımız editle o an sunucuda olmasanız dahi siz yokken olan spamları görebileceksiniz.

Sadece adwords.c modülümüzde işlem yapıyoruz.

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#define MSG_ADWORDS "ADWORDS" #define TOK_ADWORDS "WO"

altına,
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
#define MSG_SPAMLOKU "SPAMLOGOKU" #define TOK_SPAMLOKU "SLOKU" #define MSG_SPAMLSIL "SPAMLOGSIL" #define TOK_SPAMLSIL "SLSIL"

ekleyin.

-

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
CmdAdwords = AddCommand(modinfo->handle, MSG_ADWORDS, TOK_ADWORDS, m_adwords);

altına,
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
CmdAdwords = AddCommand(modinfo->handle, MSG_SPAMLOKU, TOK_SPAMLOKU, spamlogoku); CmdAdwords = AddCommand(modinfo->handle, MSG_SPAMLSIL, TOK_SPAMLSIL, spamlogsil);

ekleyin.

-

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/* * adword_checkmsg * =============== * * The badword checking stuff was copied from src/badwords.c, * I modified it a lot. */

altına,
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
static char *FullDate(TS time_in) { struct tm *tp = localtime(&time_in); if (!tp) return NULL; memset(&mybuf, 0, sizeof mybuf); strftime(mybuf, sizeof mybuf, "%d-%m-%Y - %H:%M:%S", tp); return mybuf; }

ekleyin.

-

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
for (name = strtoken(&p, tmp, ","); name; name = strtoken(&p, NULL, ",")) if ((chptr = find_channel(name, NullChn)) != NullChn) SendNotice_channel;

altına,
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
FILE *spamlog; spamlog = fopen("spamlog.db","a+"); if (spamlog != NULL) { fprintf(spamlog, "[%s] [ SPAM ] Yapan: %s - Yapilan: %s - Mesaj: %s\n", FullDate(from->lasttime), from->name, to ? to : "", str); fclose(spamlog); }

ekleyin.

-

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
static void adwords_event_kill(char *name) { aClient *cptr; if ((cptr = find_person(name, NULL))) exit_client(cptr, cptr, &me, myconf.kill_reason ? myconf.kill_reason : DEF_KILL_REASON); }

altına,
Kod:   Kodu kopyalamak için üzerine çift tıklayın!
int spamlogoku(aClient *sptr){ if (!IsNetAdmin(sptr)) { sendnotice(sptr,"*** \2%s\2, bu komutu kullanmaya yetkiniz yoktur.", sptr->name); return 0; } #define spmoku "spamlog.db" FILE *p; char buf[BUFSIZE]; p = fopen(spmoku, "r"); sendnotice(sptr,"*** --- Loglanan Spam Listesi ---"); if (p) { while (fgets(buf, sizeof(buf), p)) { buf[strlen(buf)-1] = 0; sendnotice(sptr,"*** %s", buf); } fclose(p); sendnotice(sptr,"*** --- Loglanan Spam Listesi Sonu ---"); } else { sendnotice(sptr,"*** Henuz bir spam kaydi yok."); } } int spamlogsil(aClient *sptr){ if (!IsNetAdmin(sptr)) { sendnotice(sptr,"*** \2%s\2, bu komutu kullanmaya yetkiniz yoktur.", sptr->name); return 0; } system("rm -rf spamlog.db"); sendnotice(sptr,"*** --- Spam Log dosyasi silindi."); return 0; }

ekleyin.

Son olarak da make custommodule MODULEFILE=modulismi şeklinde modülü derleyip rehash çekiyoruz.

Kısaca mantığı anlatayım. Komut erişimlerini NetworkAdmin'e verdim.
Belirtilen kanala yansıyan spamlar, spamlog.db adında bir dosyaya kaydedilir.
/spamlogoku komutuyla da listeye kaydedilen spamları, gün-ay-yıl + saat-dakika-saniye : yapan-yapılan-yaptığımesaj şeklinde size gösterir.

Liste bir zaman sonra bayağı şişeceği için /spamlogsil komutunu yaptım. Bu komutla da listeyi, yani spamlog.db dosyasını sıfırlayabilirsiniz.

İyi forumlar.

eline saglık

__________________
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Parayı Hayatınızın Her karesinde bulabilirsiniz ama Dostu Her zaman bulamazsınız.
 
Alıntı ile Cevapla

Alt 11 Nisan 2017, 23:30   #3
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: adwords.c Modülüne Küçük Bir Eklenti




Tebrik ederim Kardesim Eline Emegine Saglık

 
Alıntı ile Cevapla

Alt 13 Kasım 2017, 00:12   #4
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: adwords.c Modülüne Küçük Bir Eklenti




eline saglik

 
Alıntı ile Cevapla

Cevapla

Etiketler
adwords, irc, spam


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Tatlı Küçük Yalancılar Dizisi 2.Bölümde Çalan Küçük Sevgilim Şarkısını Kim Söylüyor PauL Dizi ve Film Müzikleri 0 30 Temmuz 2015 12:46
Tatlı Küçük Yalancılar Dizisi 2.Bölümde Çalan Benim Küçük Sevgilim Şarkı Sözleri PauL Dizi ve Film Müzikleri 0 30 Temmuz 2015 12:45
Eklenti – Plugin Nedir ? Eklenti – Plugin Yazarak (Kodlayarak) Para Kazan duhan05 İnternetten Para Kazanma Yolları 0 11 Mayıs 2013 13:43
Atatürk öldü diye ağlayan küçük Elif'e, küçük Ayşe'den kanınızı donduracak cevap(!) Shadow Serbest Kürsü 8 09 Ağustos 2010 16:54
küçük kızın armağanı(küçük ama etkileyici) Candy Esrarengiz Olaylar 2 09 Mayıs 2010 12:52