• 14-10-2026, 01:42:41
    #1
    Merhaba arkadaşlar,
    TeamSpeak 3 ve müzik bot hizmetleri sunduğum bir firmam var. Web sitem üzerinden kullanıcılara belirli bir süre ücretsiz TS3 sunucusu sağlıyorum. Ancak bazı kullanıcılar ücretsiz sunucularının süresi dolduğunda yeni hesap açarak tekrar ücretsiz sunucu alıyor. Bu durumun önüne geçmek istiyorum.
    Aklımdaki çözümlerden biri, kayıt olan kullanıcıların IP adreslerini ve subnet aralıklarını kontrol ederek daha önce ücretsiz hizmet almış hesaplarla eşleştirmek. Ancak kullanıcıların modemlerini yeniden başlatarak IP adreslerini değiştirmesi veya VPN kullanması gibi durumları da hesaba katmam gerekiyor.


    Bu konuda tecrübeli arkadaşlara birkaç sorum var:
    • IP adresi ve subnet kontrolünü birlikte kullanarak bu suistimali önlemek için nasıl bir sistem kurulabilir?
    • Kullanıcı IP adresini değiştirdiğinde veya VPN kullandığında tekrar ücretsiz hizmet almasını nasıl engelleyebilirim?
    • Subnet aralığındaki IP adreslerini kontrol ederek daha önce ücretsiz hizmet almış kullanıcıları tespit etmek ne kadar sağlıklı olur?
    • Bu işlemleri otomatik risk analiziyle gerçekleştirmek mümkün mü? Yapay zekâ destekli bir kontrol sistemi bu konuda işe yarar mı?
    • PHP ve MySQL ile böyle bir sistem kurarken nasıl bir veritabanı yapısı ve kontrol mekanizması önerirsiniz?
    Amacım, aynı kişinin sürekli yeni hesap açarak ücretsiz TS3 hizmeti almasının önüne geçmek ve bu süreci mümkün olduğunca otomatik hâle getirmek.
    Daha önce benzer bir sistem geliştiren veya bu konuda tecrübesi olan arkadaşların önerilerini bekliyorum. Özellikle uygulanabilir teknik çözümler paylaşırsanız sevinirim.
    Teşekkürler.
  • 14-10-2026, 01:45:53
    #2
    selam, ip + subnet tek başına yetmez hocam, cgnat yüzünden aynı apartman bile aynı ip havuzundan çıkar, bir de vpn var. ben olsam katmanlı kurardım:

    1. kayıtta ip, subnet ve tarayıcı parmağını aynı satıra yaz

    $ip = $_SERVER['REMOTE_ADDR'];
    $parca = explode('.', $ip);
    $subnet = count($parca) === 4 ? implode('.', array_slice($parca, 0, 3)) : substr($ip, 0, 10);
    2. aynı subnetten son 30 günde kaç ücretsiz verilmiş bak, 2-3 ü geçerse otomatik verme, onaya düşür

    select count(*) from free_trials where subnet = ? and created_at > now() - interval 30 day;
    3. e-posta + sms doğrulaması şart koş, hosting ve vpn ip aralıklarından geleni de onaya at

    tek eşleşmede direkt banlama, skoru topla: aynı subnet + aynı parmak izi + çöp mail bir aradaysa red, biri tutuyorsa manuel onay. yapay zekâya gerek yok, bu basit skorlama işi görür.
  • 14-10-2026, 01:46:47
    #3
    jonuisw adlı üyeden alıntı: mesajı görüntüle
    selam, ip + subnet tek başına yetmez hocam, cgnat yüzünden aynı apartman bile aynı ip havuzundan çıkar, bir de vpn var. ben olsam katmanlı kurardım:

    1. kayıtta ip, subnet ve tarayıcı parmağını aynı satıra yaz

    $ip = $_SERVER['REMOTE_ADDR'];
    $parca = explode('.', $ip);
    $subnet = count($parca) === 4 ? implode('.', array_slice($parca, 0, 3)) : substr($ip, 0, 10);
    2. aynı subnetten son 30 günde kaç ücretsiz verilmiş bak, 2-3 ü geçerse otomatik verme, onaya düşür

    select count(*) from free_trials where subnet = ? and created_at > now() - interval 30 day;
    3. e-posta + sms doğrulaması şart koş, hosting ve vpn ip aralıklarından geleni de onaya at

    tek eşleşmede direkt banlama, skoru topla: aynı subnet + aynı parmak izi + çöp mail bir aradaysa red, biri tutuyorsa manuel onay. yapay zekâya gerek yok, bu basit skorlama işi görür.
    teşekkürler hocam deneyeceğim.
  • 14-10-2026, 01:56:34
    #4
    client tarafında hiç mi bilgi sağlamıyor teamspeak, sonuçta donanım düzeyinde erişimi var programın? kontrollere client tarafından alabileceğin bir parametre dahil edebiliyorsan, suistimal gerçekleşse bile ts'ye key girdiği anda tanır ve iptal edersin. aklıma en hızlı bu çözüm geliyor, üzerine kafa yormak lazım. deneyimim yok ne yazık ki, düz kullanıcıydım hep.
  • 14-10-2026, 03:30:23
    #5
    en basit çözüm olarak telefon numarası onayı eklemek diye düşünüyorum ben hocam