Oyuncu Giriş Loglama Sistemi (PHP + MySQL ile IP Takibi)
Gönderilme zamanı: Sal Haz 24, 2025 5:45 pm
[hr]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.
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
);
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();
?>
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));
Kod: Tümünü seç
include("login_logger.php");
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>";
?>
- 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
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]
- [REHBER] Sunucu Durum API Sistemi (JSON)
- [TASARIM] Launcher’da Etkinlik Takvimi Gösterme
- [SCRIPT] IP Bazlı Yasaklama Sistemi (Ban IP Log)
Geliştirici loglarını daha ileri taşımak istersen Discord log botu entegrasyonu da ekleyebilirim.