Oyuncu Giriş Loglama Sistemi (PHP + MySQL ile IP Takibi)

Geliştirici Alanı (PVP sunucu kurmak isteyenler için rehberler, script paylaşımları)
Cevapla
admin
Site Admin
Mesajlar: 359
Kayıt: Prş May 22, 2025 6:44 am
İletişim:

Oyuncu Giriş Loglama Sistemi (PHP + MySQL ile IP Takibi)

Mesaj gönderen admin »

📋 [SCRIPT] Oyuncu Giriş Loglama Sistemi (PHP + MySQL ile IP Takibi)
📅 Haziran 2025 | MMO.net.tr Geliştirici Alanı Güvenlik Script Serisi
Açıklama yazdı: Bu sistem, oyuncuların oyun paneli ya da launcher üzerinden giriş yaptıklarında IP, tarayıcı ve zaman bilgilerini log olarak MySQL veritabanına kaydeder. Multi hesap denetimi, shared IP kullanımı ve şüpheli giriş analizleri için birebirdir.
[hr]
📁 1. MySQL Tablonun Oluşturulması

Aşağıdaki SQL sorgusu ile giriş loglarının kaydedileceği tabloyu oluşturabilirsin:

Kod: Tümünü seç

CREATE TABLE login_logs (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(50),
  ip_address VARCHAR(45),
  user_agent TEXT,
  login_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
[hr]
📄 2. PHP Loglama Scripti (login_logger.php)

Bu dosya, oyun panelinde veya launcher giriş sisteminde çağrılarak kullanıcıyı loglar.

Kod: Tümünü seç

<?php
// Bağlantı bilgileri
$host = "localhost";
$user = "db_user";
$pass = "db_pass";
$db   = "sunucu_db";

$conn = new mysqli($host, $user, $pass, $db);

// Kullanıcı adı oturumdan veya parametreden alınabilir
$username = $_POST['username'] ?? 'Bilinmeyen';
$ip       = $_SERVER['REMOTE_ADDR'];
$agent    = $_SERVER['HTTP_USER_AGENT'];

$stmt = $conn->prepare("INSERT INTO login_logs (username, ip_address, user_agent) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $username, $ip, $agent);
$stmt->execute();
?>
[hr]
📍 3. Launcher / Panel Entegrasyonu

Oyuncu giriş yaptıktan sonra aşağıdaki şekilde log scripti çağrılabilir:

Kod: Tümünü seç

// Giriş başarılıysa:
$username = $_POST['login_user'];
file_get_contents("https://mmo.net.tr/log/login_logger.php?username=" . urlencode($username));
Alternatif olarak include edilebilir:

Kod: Tümünü seç

include("login_logger.php");
[hr]
📊 4. Log Görüntüleme Paneli (Basit Arayüz)

Kod: Tümünü seç

<?php
$conn = new mysqli("localhost", "db_user", "db_pass", "sunucu_db");
$result = $conn->query("SELECT * FROM login_logs ORDER BY login_time DESC LIMIT 100");

echo "<table border='1'><tr><th>Kullanıcı</th><th>IP</th><th>Tarayıcı</th><th>Zaman</th></tr>";
while($row = $result->fetch_assoc()) {
    echo "<tr>
            <td>{$row['username']}</td>
            <td>{$row['ip_address']}</td>
            <td>{$row['user_agent']}</td>
            <td>{$row['login_time']}</td>
          </tr>";
}
echo "</table>";
?>
[hr]
🧠 İpuçları:
  • Aynı IP’den çoklu girişleri listelemek için:

    Kod: Tümünü seç

    SELECT ip_address, COUNT(*) as sayi FROM login_logs GROUP BY ip_address HAVING sayi > 1;
    
  • Logları haftalık olarak otomatik arşivlemek için cron + `mysqldump` kullanılabilir
  • IP adresleri için ülke / konum bilgisi eklemek için IP-API gibi ücretsiz API’ler entegre edilebilir
[hr]
🛡️ Güvenlik Notu:
Bu script kullanıcı verisi tuttuğu için:
  • log sayfalarını admin paneline taşı
  • .htaccess ile dışarıya kapat
  • Şifreli admin login sistemi ile görüntüleme kontrolü ekle



[hr]
✔️ Sonraki Rehberler:
  • [REHBER] Sunucu Durum API Sistemi (JSON)
  • [TASARIM] Launcher’da Etkinlik Takvimi Gösterme
  • [SCRIPT] IP Bazlı Yasaklama Sistemi (Ban IP Log)
🎯 MMO.net.tr Geliştirici Ekibi olarak başarılar dileriz!
Geliştirici loglarını daha ileri taşımak istersen Discord log botu entegrasyonu da ekleyebilirim. ✌️
En büyük zenginlik sağlıktır. Sağlıkla para kazanabilirsin. Para ile sağlık satın alamazsın...
www.mmo.net.tr
Cevapla

“Geliştirici Alanı” sayfasına dön