Peršokti į turinį

Dalinuosi minecraft serverio monitorium


donce16

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3827 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, taigi noriu pasidalinti šiuo minecraft monitoriumi, manau jog daugelis serverių savininkų tokio ieško.

Jei negaila +R3P :)

Štai skriptas:

<?php

$status = new MinecraftServerStatus();

$response = $status->getStatus('us.shotbow.net'); //Serverio IP

if(!$response) {

echo"The Server is offline!";

} else {

echo"The Server ".$response['hostname']." is running on ".$response['version']." and is online,

currently are ".$response['players']." players online

of a maximum of ".$response['maxplayers'].". The motd of the server is '".$response['motd']."'.

The server has a ping of ".$response['ping']." milliseconds.";

}

class MinecraftServerStatus {

private $timeout;

public function __construct($timeout = 3) {

$this->timeout = $timeout;}

public function getStatus($host = '127.0.0.1', $port = 25565) {

if (substr_count($host , '.') != 4) $host = gethostbyname($host);

$start = microtime(true);

if(!$socket = @stream_socket_client('tcp://'.$host.':'.$port, $errno, $errstr, $this->timeout)) {

return false;

} else {

stream_set_timeout($socket, $this->timeout);

fwrite($socket, "\xFE\x01");

$data = fread($socket, 2048);

fclose($socket);

if($data == null) return false;

$ping = round((microtime(true)-$start)*1000);

if (substr((String)$data, 3, 5) == "\x00\xa7\x00\x31\x00"){

$result = explode("\x00", mb_convert_encoding(substr((String)$data, 15), 'UTF-8', 'UCS-2'));

$motd = preg_replace("/(§.)/", "",$result[1]);

}else{

$result = explode('§', mb_convert_encoding(substr((String)$data, 3), 'UTF-8', 'UCS-2'));

$motd = "";

foreach ($result as $key => $string) {

if($key != sizeof($result)-1 && $key != sizeof($result)-2 && $key != 0) {

$motd .= '§'.$string;}}}

$res = array();

$res['hostname'] = $host;

$res['version'] = $result[0];

$res['motd'] = $motd;

$res['players'] = $result[sizeof($result)-2];

$res['maxplayers'] = $result[sizeof($result)-1];

$res['ping'] = $ping;

return $res;

}

}

}

?>

Jeigu rasit klaidų, parašykit į pm arba į atsakymus.

Redaguota , nario ÐØℕℂℰ
  • Teigiamai 4
Nuoroda į komentarą
Dalintis per kitą puslapį

  • d0Se užrakino šią temą

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3827 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...