<?
function mta_getServer_process($dat) {
if (substr($dat,0,4)=="EYE1") {
$dat=substr($dat,4);
$i=0;
while($dat!="") {
if (substr($dat,0,2)==chr(1)."?") {
$dat=substr($dat,2);
}
$l=ord(substr($dat,0,1));
$blks[$i]=substr($dat,1,$l-1);
$dat=substr($dat,$l);
$i++;
}
$ret->gameshort=$blks[0];
$ret->port=$blks[1];
$ret->name=$blks[2];
$ret->rules['game']=$blks[3];
$ret->map=$blks[4];
$ret->rules['version']=$blks[5];
if ($blks[6]=="0") {
$ret->public=1;
} else {
$ret->public=0;
}
$ret->players=$blks[7];
$ret->maxplayers=$blks[8];
$j=0;
for ($i=11; $i<sizeof($blks)-2; $i=$i+5) {
$ret->player[$j]->name=$blks[$i];
$ret->player[$j]->score=$blks[$i+3];
$ret->player[$j]->time=0;
$j++;
}
}
return $ret;
}
function mta_getServer_send($fp) {
fwrite($fp,"s");
}
function mta_getServer($ip,$port) {
$fp=fsockopen("udp://$ip", $port, $errno, $errstr);
if (!$fp) {
} else {
stream_set_timeout($fp,1,0);
mta_getServer_send($fp);
$data=fread($fp,16384);
fclose($fp);
return mta_getServer_process($data);
}
}
?>
not working for server 80.79.23.150:22003
PHP File:
$info=mta_getServer('80.79.23.150', '22003');
echo $info->name;