-
-
Save barneygale/1235274 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
function ping($host, $port=25565, $timeout=30) { | |
//Set up our socket | |
$fp = fsockopen($host, $port, $errno, $errstr, $timeout); | |
if (!$fp) return false; | |
//Send 0xFE: Server list ping | |
fwrite($fp, "\xFE"); | |
//Read as much data as we can (max packet size: 241 bytes) | |
$d = fread($fp, 256); | |
//Check we've got a 0xFF Disconnect | |
if ($d[0] != "\xFF") return false; | |
//Remove the packet ident (0xFF) and the short containing the length of the string | |
$d = substr($d, 3); | |
//Decode UCS-2 string | |
$d = mb_convert_encoding($d, 'auto', 'UCS-2'); | |
//Split into array | |
$d = explode("\xA7", $d); | |
//Return an associative array of values | |
return array( | |
'motd' => $d[0], | |
'players' => intval($d[1]), | |
'max_players' => intval($d[2])); | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment