Advertisement
cz3dtc

PHP minecraft server Status.

Apr 1st, 2013
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. <?php
  2. class minecraft_server {
  3. private $address;
  4. private $port;
  5. public function __construct($address, $port = 25565){
  6. $this->address = $address;
  7. $this->port = $port;
  8. }
  9. public function get_ping_info(&$info){
  10. $socket = @fsockopen($this->address, $this->port, $errno, $errstr, 1.0);
  11. if ($socket === false){
  12. return false;
  13. }
  14. fwrite($socket, "\xfe\x01");
  15. $data = fread($socket, 256);
  16. if (substr($data, 0, 1) != "\xff"){
  17. return false;
  18. }
  19. if (substr($data, 3, 5) == "\x00\xa7\x00\x31\x00"){
  20. $data = explode("\x00", mb_convert_encoding(substr($data, 15), 'UTF-8', 'UCS-2'));
  21. }else{
  22. $data = explode('§', mb_convert_encoding(substr($data, 3), 'UTF-8', 'UCS-2'));
  23. }
  24. if (count($data) == 3){
  25. $info = array(
  26. 'version' => '1.3.2',
  27. 'motd' => $data[0],
  28. 'players' => intval($data[1]),
  29. 'max_players' => intval($data[2]),
  30. );
  31. }else{
  32. $info = array(
  33. 'version' => $data[0],
  34. 'motd' => $data[1],
  35. 'players' => intval($data[2]),
  36. 'max_players' => intval($data[3]),
  37. );
  38. }
  39. return true;
  40. }
  41. }
  42. $server = new minecraft_server('mc.ggcubes.cz', 25586);
  43. if (!$server->get_ping_info($info)){
  44. }else{
  45.  
  46. echo '<html><head><title>Minecraft server status</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
  47. echo '<meta name="Language" content="cz" />';
  48. echo '</head><body>';
  49. echo "'";
  50. print $info['motd'];
  51. echo "'<br>";
  52. echo "Hraje zde '";
  53. print $info['players'];
  54. echo " z ";
  55. print $info['max_players'];
  56. echo "' hráčů.";
  57. echo '<br></body></html>';
  58. }
  59. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement