Skip to content

🎮 Modern GTA SAMP / Open.mp sunucu monitörü - Gerçek zamanlı UDP query protokolü ile responsive web arayüzü. PHP 8.0+, TailwindCSS, Alpine.js. Mobil uyumlu, otomatik yenileme, akıllı arama. 🚀

License

Notifications You must be signed in to change notification settings

thislaex/samp-query

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 GTA SAMP/Open.MP Sunucu Monitörü

Modern ve responsive web tabanlı GTA San Andreas Multiplayer (SAMP) ve Open.MP sunucu izleme aracı. Gerçek zamanlı sunucu verilerini doğrudan UDP query protokolü ile çeker ve güzel, mobil uyumlu arayüzde sunar.

GitHub License PHP Version SAMP Protocol Open.MP Support GitHub Stars GitHub Issues

✨ Özellikler

  • 🔥 Gerçek Zamanlı Veri: Doğrudan UDP SAMP/Open.MP query protokolü uygulaması
  • 🎨 Modern Arayüz: TailwindCSS ve Alpine.js ile responsive tasarım
  • Hızlı Performans: Optimize edilmiş UDP socket bağlantıları
  • 🔍 Akıllı Arama: Sunucu adı, IP, oyun modu veya sunucu tipine göre filtreleme
  • 📱 Mobil Uyumlu: Tüm cihazlarda mükemmel görüntü
  • 🔄 Otomatik Yenileme: Her 30 saniyede otomatik güncelleme
  • 📊 Detaylı Bilgi: Oyuncu sayısı, ping, oyun modu, dil ve daha fazlası
  • 🚫 Harici API Yok: Güvenilirlik için doğrudan protokol uygulaması
  • 🆕 Open.MP Desteği: SAMP ve Open.MP sunucularını aynı arayüzde izleme

🚀 Canlı Demo

Demo'yu Görüntüle

📸 Ekran Görüntüleri

SAMP/Open.MP Sunucu Monitörü

🛠️ Kurulum

Ön Gereksinimler

  • PHP 8.0 veya üzeri
  • Socket extension (php-sockets)
  • JSON extension (php-json)
  • Web sunucusu (Apache/Nginx)

Hızlı Kurulum

  1. Repoyu klonlayın:
git clone https://github.com/thislaex/samp-query.git
cd samp-query
  1. Web sunucunuza deploy edin:
# Apache için
cp -r * /var/www/html/samp/

# Nginx için
cp -r * /usr/share/nginx/html/samp/

# XAMPP/WAMP (Windows) için
# Dosyaları htdocs/samp/ klasörüne kopyalayın
  1. PHP extensionlarını kontrol edin:
php -m | grep socket
php -m | grep json
  1. Sunucularınızı yapılandırın: index.php dosyasındaki $servers dizisini düzenleyin:
private $servers = [
    ['ip' => 'sunucu-ip-adresi', 'port' => 7777, 'type' => 'samp'],
    ['ip' => 'openmp-sunucu-ip', 'port' => 7777, 'type' => 'openmp'],
];
  1. Tarayıcıda açın:
http://localhost/samp/

📋 API Kullanımı

Uygulama bir JSON API endpoint sağlar:

GET /path/to/samp/?api=servers

Örnek Yanıt:

{
    "success": true,
    "servers": [
        {
            "hostname": "[0.3.7/DL] SAMP Sunucunuz",
            "players": 42,
            "maxplayers": 100,
            "gamemode": "Roleplay/Freeroam",
            "language": "Turkish",
            "password": false,
            "ping": 85,
            "ip": "192.168.1.100",
            "port": 7777,
            "source": "udp_query",
            "server_type": "samp",
            "is_openmp": false,
            "query_time_ms": 45.2
        },
        {
            "hostname": "Open.MP Test Server",
            "players": 25,
            "maxplayers": 100,
            "gamemode": "Freeroam/DM",
            "language": "English",
            "password": false,
            "ping": 65,
            "ip": "192.168.1.101",
            "port": 7777,
            "source": "udp_query",
            "server_type": "openmp",
            "is_openmp": true,
            "query_time_ms": 38.1
        }
    ],
    "count": 2,
    "query_time_ms": 156.7,
    "timestamp": "2025-07-09 15:30:45"
}

⚙️ Yapılandırma

Sunucu Ekleme/Çıkarma

index.php dosyasındaki $servers dizisini düzenleyin:

private $servers = [
    ['ip' => '51.254.139.153', 'port' => 7777, 'type' => 'samp'],     // SAMP Sunucu
    ['ip' => '89.45.44.38', 'port' => 7777, 'type' => 'samp'],       // SAMP Sunucu
    ['ip' => 'openmp-server.com', 'port' => 7777, 'type' => 'openmp'], // Open.MP Sunucu
];

Sunucu Tipleri:

  • 'type' => 'samp' - SA-MP sunucuları için
  • 'type' => 'openmp' - Open.MP sunucuları için

Timeout Ayarları

UDP socket timeout değerlerini değiştirin:

// 2 saniyeden 5 saniyeye timeout değişimi
@socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array('sec' => 5, 'usec' => 0));

Otomatik Yenileme Aralığı

JavaScript'te otomatik yenileme zamanlamasını değiştirin:

// 30 saniyeden 60 saniyeye değiştirme
setInterval(() => {
    if (!this.loading) {
        this.refreshServers();
    }
}, 60000);

🏗️ Teknoloji Yığını

  • Backend: PHP 8.0+
  • Frontend: HTML5, TailwindCSS, Alpine.js
  • Protokol: SAMP/Open.MP UDP Query Protocol
  • İkonlar: Font Awesome 6
  • Stil: TailwindCSS CDN

📖 SAMP/Open.MP Query Protokolü

Bu proje hem SAMP hem de Open.MP için UDP query protokolünü uygular:

  1. Paket Yapısı: SAMP + IP(4 bytes) + Port(2 bytes) + 'i'
  2. Yanıt Ayrıştırma: Little-endian byte okuma
  3. Veri Alanları: Şifre durumu, oyuncu sayısı, hostname, gamemode, dil
  4. Uyumluluk: SAMP 0.3.7/DL ve Open.MP sunucularıyla tam uyumlu

Protokol Detayları

// Query paket formatı
$packet = 'SAMP' .              // Header (4 bytes)
          pack('CCCC', ...explode('.', $ip)) . // IP adresi (4 bytes)  
          pack('v', $port) .     // Port little-endian (2 bytes)
          'i';                   // Info query türü (1 byte)

🤝 Katkıda Bulunma

Katkılarınızı bekliyoruz! Lütfen şu adımları takip edin:

  1. Repoyu fork edin
# GitHub'da thislaex/samp-query repo'sunu fork edin
# Ardından kendi fork'unuzu klonlayın
git clone https://github.com/KULLANICI_ADINIZ/samp-query.git
cd samp-query
  1. Geliştirme dalı oluşturun
git checkout -b feature/yeni-ozellik
# veya
git checkout -b bugfix/hata-duzeltmesi
  1. Değişikliklerinizi yapın ve test edin
# Kodunuzu yazın ve test edin
# Hem SAMP hem de Open.MP sunucuları ile test etmeyi unutmayın
  1. Değişiklikleri commit edin
git add .
git commit -m "feat: yeni özellik eklendi"
# veya
git commit -m "fix: sunucu bağlantı hatası düzeltildi"
  1. Fork'unuza push edin
git push origin feature/yeni-ozellik
  1. Pull Request oluşturun

Geliştirme Rehberi

  • Kod Standartları: PSR-12 kodlama standartlarını takip edin
  • Commit Mesajları: Conventional Commits formatını kullanın
    • feat: - Yeni özellik
    • fix: - Hata düzeltmesi
    • docs: - Dokümantasyon güncelleme
    • style: - CSS/UI değişiklikleri
    • refactor: - Kod düzenlemesi
  • Testing: Değişikliklerinizi farklı SAMP ve Open.MP sunucuları ile test edin
  • Responsive: Mobil uyumluluğu kontrol edin

🐛 Sorun Giderme

Yaygın Sorunlar

Sorun Çözüm
Sunucular görünmüyor PHP sockets extension'ının kurulu olup olmadığını kontrol edin
UDP bağlantısı başarısız Firewall'ın UDP bağlantılarına izin verdiğini doğrulayın
Yavaş sorgular Timeout değerlerini ayarlayın veya ağı kontrol edin
API boş döndürüyor Sunucuların online ve erişilebilir olduğundan emin olun
Open.MP sunucu görünmüyor Sunucu tipini 'openmp' olarak ayarladığınızdan emin olun

Firewall Yapılandırması

Linux (iptables):

sudo iptables -A OUTPUT -p udp --dport 7777 -j ACCEPT

Windows Firewall:

New-NetFirewallRule -DisplayName "SAMP/OpenMP UDP" -Direction Outbound -Protocol UDP -LocalPort 7777

📈 Yol Haritası

  • 👥 Oyuncu listesi görüntüleme
  • ⭐ Sunucu favoriler sistemi
  • 📊 Geçmiş istatistikler ve grafikler
  • 🔐 Sunucu yönetimi için admin paneli
  • 🌍 Çoklu dil desteği
  • 🌙 Karanlık mod teması
  • ⏱️ Sunucu uptime takibi
  • 📧 Sunucu durumu bildirimleri
  • 🗺️ Sunucu konum haritası
  • 📱 Progressive Web App (PWA)

📄 Lisans

Bu proje MIT Lisansı altında lisanslanmıştır - detaylar için LICENSE dosyasına bakın.

🙏 Teşekkürler

📞 İletişim

⭐ Destek

Bu proje size yardımcı olduysa, GitHub'da yıldız vermeyi düşünün!


SAMP & Open.MP topluluğu için ❤️ ile yapılmıştır

About

🎮 Modern GTA SAMP / Open.mp sunucu monitörü - Gerçek zamanlı UDP query protokolü ile responsive web arayüzü. PHP 8.0+, TailwindCSS, Alpine.js. Mobil uyumlu, otomatik yenileme, akıllı arama. 🚀

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages