DuKKeR 2 Posted January 2, 2017 (edited) Доброго времени суток. Хочу представить пример парсинга мастер-листа и получения информации о вашем сервере. Скриншот: Код на PHP: $ip = '91.76.227.40'; // Ip адрес сервера $port = 22005; // Port сервера $ch = curl_init('https://ml.rage.mp/servers'); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false ); curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); $resp = curl_exec( $ch ); curl_close( $ch ); $resp = json_decode($resp , true); foreach($resp as $val) { if($val['ip'] == $ip and $val['port'] == $port) { echo 'PHP<hr>Id: '.$val['_id']; echo '<br>Название: '.$val['name']; echo '<br>Слотов: '.$val['slots']; echo '<br>Игроков: '.$val['players']; echo '<br>Uptime: '.$val['uptime']; break; } } Код на JavaScript: var ip = '91.76.227.40', // Ip адрес сервера port = 22005; // Port сервера $.getJSON('https://ml.rage.mp/servers', function(data) { $.each(data, function(key, val) { if(ip == val.ip && port == val.port) { document.write('JavaScript<hr>Id: '+val._id); document.write('<br>Название: '+val.name); document.write('<br>Слотов: '+val.slots); document.write('<br>Игроков: '+val.players); document.write('<br>Uptime: '+val.uptime); return false; } }); }); Библиотека JQuery обязательна! Edited January 2, 2017 by DuKKeR 2 Share this post Link to post Share on other sites
tmaslov22 3 Posted January 4, 2017 (edited) Можно проще на пыхе писать) <? $resp = json_decode(file_get_contents("https://ml.rage.mp/servers"), true); foreach($resp as $val) { if($val['ip'] == '5.187.1.159' && $val['port'] == 22005) { echo 'Id: '.$val['_id']; echo '<br>Название: '.$val['name']; echo '<br>Слотов: '.$val['slots']; echo '<br>Игроков: '.$val['players']; echo '<br>Uptime: '.$val['uptime']; break; } } Edited January 4, 2017 by tmaslov22 Share this post Link to post Share on other sites
Danil_Valov 22 Posted January 7, 2017 (edited) Обязательно требуется указать, что ваш вариант подходит только для тех серверов, которые являются публичными (у которых в `conf.json` выставлено `"announce": true`. Иначе они не будут на сайте мониторинга rage.mp отображаться, и не будут попадать в json. И всё-таки, мне кажется, проще будет веб-сервер к вашему игровому серверу подключить (node-пакет `http` тот же) и через него выводить статистику. Как минимум, данные о сервере актуальнее будут. Да и нагрузка минимальна. Вот так можно это реализовать: Добавляем в папку `keker` файл monitoring.js со следующим содержанием: // Подключаем модуль http // (уже включён в nodejs, отдельно устанавливать не требуется) const http = require('http'); // Создаём новый веб-сервер const server = http.createServer(function(request, response) { // В ответ на любой запрос отдаём мониторинг response.writeHead(200, {"Content-Type": "text/html"}); response.write(`<br>Players: ${mp.players.length}/${mp.players.size}`); response.write(`<br>Uptime: ${process.uptime()}`); response.end(); }); //Запускаем веб-сервер на порту 8080 (можно поменять на любой другой) server.listen(8080); // Выводим в консоль информацию, что сервер запущен console.log('\nMonitoring Server is listening'); Добавляем в конец файла index.js, находящегося в этой же папке `keker`: ... require('./monitoring'); И после перезапуска сервера в терминале появится надпись "Monitoring Server is listening": Цитата Starting RAGE Multiplayer server. MaxPlayers: 100 Name: RAGE:MP Unofficial server Loading packages "keker" loaded Loading events: "commandhandler.js" - OK "common.js" - OK Monitoring Server is listening Loading commands: "basiccommands.js" - OK И теперь при заходе на http://ip_вашего_сервера:8080 вы будете видеть: Цитата Players: 1/100 Uptime: 637.516 Uptime указывается в секундах. Если вы на своём компьютере сервер запустили - то мониторинг будет доступен по ссылке: http://127.0.0.1:8080 Можно также в JSON выводить все эти данные в мониторинг, а потом сайтом подхватывать их. Edited January 7, 2017 by Danil_Valov 1 1 Share this post Link to post Share on other sites
tharichev3399 0 Posted January 9, 2017 Извините за флуд, можно функции мультиплеера, что то вроде samp-wiki, это будет ? Share this post Link to post Share on other sites
Leone 13 Posted January 10, 2017 21 час назад, tharichev3399 сказал: Извините за флуд, можно функции мультиплеера, что то вроде samp-wiki, это будет ? https://wiki.rage.mp/wiki/index.php?title=Main_Page Share this post Link to post Share on other sites
Akum 0 Posted June 13 Можно socket использовать, для обновление данных на сайте в реальном времени Share this post Link to post Share on other sites