- Баллы
- 153
- Имя в Minecraft
- savakmsRus
Как они это делают без плагина и прочего.
Какой то скрипт, но можно этот скрипт как то посмотреть?
Какой то скрипт, но можно этот скрипт как то посмотреть?
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
<?php
/* Minecraft 1.4.2 server list ping script
Originally created by lol768 -- 30/10/2012
Available for use under the GNU LGPLv3 License
For usage and distribution information, see: http://www.gnu.org/licenses/lgpl-3.0.html */
$host = "87.98.185.189"; //IP/host of Minecraft server
$port = 25565; //Minecraft server port, not query port
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //Create the socket
$connected = socket_connect($socket, $host, $port); //Try and connect using the info provided above
if (!$connected)
die("Could not connect to server."); //No connection could be established
socket_send($socket, "\xFE\x01", 2, 0); //Send the server list ping request (two bytes)
$retVal = socket_recv($socket, &$data, 1024, 0); //Get the info and store it in $data
socket_close($socket); //Close socket
if ($retVal != false && substr($data, 0, 1) == "\xFF") //Ensure we're getting a kick message as expected
{
$data = substr($data, 9); //Remove packet, length and starting characters
$data = explode("\x00\x00", $data); //0000 separated info
$protocolVersion = $data[0]; //Get it all into separate variables
$serverVersion = $data[1];
$motd = $data[2];
$playersOnline = $data[3];
$playersMax = $data[4];
}
else
{
die("Couldn't get expected data"); //Either retVal was false or we didn't get a kick message
}
//Example usage:
echo ("$motd is a $serverVersion Minecraft server with $playersOnline/$playersMax players online.");
?>
А нет чего то подобного на C#, а то переделывать всё это не охото.Код:<?php /* Minecraft 1.4.2 server list ping script Originally created by lol768 -- 30/10/2012 Available for use under the GNU LGPLv3 License For usage and distribution information, see: http://www.gnu.org/licenses/lgpl-3.0.html */ $host = "87.98.185.189"; //IP/host of Minecraft server $port = 25565; //Minecraft server port, not query port $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //Create the socket $connected = socket_connect($socket, $host, $port); //Try and connect using the info provided above if (!$connected) die("Could not connect to server."); //No connection could be established socket_send($socket, "\xFE\x01", 2, 0); //Send the server list ping request (two bytes) $retVal = socket_recv($socket, &$data, 1024, 0); //Get the info and store it in $data socket_close($socket); //Close socket if ($retVal != false && substr($data, 0, 1) == "\xFF") //Ensure we're getting a kick message as expected { $data = substr($data, 9); //Remove packet, length and starting characters $data = explode("\x00\x00", $data); //0000 separated info $protocolVersion = $data[0]; //Get it all into separate variables $serverVersion = $data[1]; $motd = $data[2]; $playersOnline = $data[3]; $playersMax = $data[4]; } else { die("Couldn't get expected data"); //Either retVal was false or we didn't get a kick message } //Example usage: echo ("$motd is a $serverVersion Minecraft server with $playersOnline/$playersMax players online."); ?>
Это пример кода запроса. Опкод 0хFE. Переменная $playersOnline - то, что тебе нужно. Но, хочу заметить, данный запрос действителен только для 47-го протокола и выше (1.4.1). Если сервер ниже
этой версии, то запрос выглядит несколько по-другому.
Дело в том, что нужно сделать програму индивидуальную под каждый сервер, программа должна пинговать сервер и узнавать игроков, делать over9000 php фалов не вариантСмысл какой делать на C# мониторинг? залей на хост и получи содержимое файла, которое можно вывести в твоей программе!
пример на php: echo file_get_contents('Minecraft-Servers.ru/monitoring.php'); Есть функции аналоги в C# 100%
Дело в том, что нужно сделать програму индивидуальную под каждый сервер, программа должна пинговать сервер и узнавать игроков, делать over9000 php фалов не вариант
Лучше простоДелать можно все в один файл посылая GET запрос с названием сервера.
?ip=127.0.0.1&p=25565