noisiv 1
noisiv
Manwe Work 1
Manwe Work
Scarlet 1
Scarlet
Bvural41 1
Bvural41
mavzermete 1
mavzermete
Hikaye Ekle

Sunucu Lisans Koruma Sistemi C++

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Sistemin Mantığı

Habersiz çoğaltmaları ve kopya sunucuları engelleyebilirsiniz.
Sadece onaylı IP adresleri üzerinden tam kontrol sağlayabilirsiniz.
Sunucunuzun güvenliğini tamamen sizin belirlediğiniz kurallara göre sağlayabilirsiniz.
Yetkisiz kopyalama ve klonlama girişimlerini durdurabilirsiniz.
Lisanslı IP doğrulaması ile yönetimi tamamen siz üstlenebilirsiniz.
char.cpp içinde, oyuncu giriş yaptığında çalışacak koda ekleme yapılıyor.
lisans adında bir izin verilen IP adresi (örnekte 192.168.0.24) tanımlanıyor.
gelenip değişkeni, sunucuya bağlanan istemcinin IP’sini temsil ediyor.
Eğer gelenip lisans ile eşleşmezse, DelayedDisconnect(2) komutu ile oyuncu bağlantısı otomatik koparılıyor.

[CODE lang="cpp" title="char.cpp"]//char.cpp açılır aşağıda bulunan kodlamaları arayıp ve ekleyiniz

//Aratılır

sys_log(0, "PLAYER_LOAD: %s PREMIUM %d %d, LOGGOFF_INTERVAL %u PTR: %p", t->name, m_aiPremiumTimes[0], m_aiPremiumTimes[1], t->logoff_interval, this);

//Bulamazsanız aşağıdakini aratın onun altında olması gerekli.

m_dwLogOffInterval = t->logoff_interval;

//Üstteki verdiğimin altına eklenir

if (GetQuestFlag("online.durum") == 0)
{
quest::CQuestManager::instance().SetEventFlag("online",quest::CQuestManager::instance().GetEventFlag("online")+1);
SetQuestFlag("online.durum",1);
//muratdereli lisans
std::string lisans = "1";
lisans += "9";
lisans += "2";
lisans += ".";
lisans += "1";
lisans += "6";
lisans += "8";
lisans += ".";
lisans += "0";
lisans += ".";
lisans += "2";
lisans += "4";
std::string gelenip = ipnehaci;
if (gelenip == lisans)
{

}
else
{
GetDesc()->DelayedDisconnect(2);
}

}[/CODE]



config.h açılır aşağıda bulunan kodlamaları arayın ve ekleyiniz


[CODE lang="cpp" title="cfg"]//Aratılır

extern bool g_BlockCharCreation;

//Altına eklenir

extern std::string ipnehaci;
extern char * netip;[/CODE]

Dikkat Edilmesi Gerekenler


Statik IP kullanımı riskli olabilir: Eğer sunucu IP’niz değişirse, yanlışlıkla kendi bağlantınızı kesebilirsiniz.
Bu yöntem sadece temel bir kontroldür; kaynak kodu bilen biri tarafından aşılabilir.
Yasal Lisanslama yerine geçmez, sadece yetkisiz kopyaları biraz zorlaştırır.
IP kontrolü yaparken kullanıcıların gerçek IP’sini değil sunucu IP’sini kıyasladığınızdan emin olun.
 

En Çok Reaksiyon Alan Mesajlar

paylaşım için teşekkürler böyle daha düzgün.
[CODE lang="cpp" title="2" highlight="2"] if (GetQuestFlag("online.durum") == 0)
{
quest::CQuestManager::instance().SetEventFlag("online", quest::CQuestManager::instance().GetEventFlag("online") + 1);
SetQuestFlag("online.durum", 1);

std::string lisans = "192.168.0.24";
std::string gelenip = ipnehaci;

if (gelenip != lisans)
{
GetDesc()->DelayedDisconnect(2);
}
}
[/CODE]
Eski dosyamda bu şekilde yapmıştım, paylaşım için teşekkürler.

C++:
if (GetQuestFlag("online.durum") == 0)
{
    quest::CQuestManager::instance().SetEventFlag(
        "online",
        quest::CQuestManager::instance().GetEventFlag("online") + 1
    );
    SetQuestFlag("online.durum",1);


    std::string lisans = "192.168.1.1";
    std::string gelenip = ipnehaci;

    if (gelenip != lisans)
    {
        if (GetDesc())
            GetDesc()->DelayedDisconnect(2);
    }
}
paylaşım için teşekkürler böyle daha düzgün.
[CODE lang="cpp" title="2" highlight="2"] if (GetQuestFlag("online.durum") == 0)
{
quest::CQuestManager::instance().SetEventFlag("online", quest::CQuestManager::instance().GetEventFlag("online") + 1);
SetQuestFlag("online.durum", 1);

std::string lisans = "192.168.0.24";
std::string gelenip = ipnehaci;

if (gelenip != lisans)
{
GetDesc()->DelayedDisconnect(2);
}
}
[/CODE]
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst