[php] Информация о сервере
#1

Слышал, что есть возможности узнать информацию о сервере без помощи SampQueryAPI.
Хотелось бы побольше о них узнать...
Reply
#2

А где слышали?
Своего сервера или других?
Reply
#3

Использовал со своим сервером, код грязный, непорядочный, но рабочий. Разбирайтесь

PHP код:
<p>Состояние: 
<?php
$f 
fopen("stt","r");
$a fgets ($f,500);
$ip fgets ($f,500);
$pl fgets ($f,500);
$a="an";
if (
$a == "an") {echo '<strong><font color="green">Активен</font></strong>'; }else {echo '<strong><font color="red">Не активен</font></strong>';}
//fclose($f); 
?>

</p><p>Адрес:  62.109.14.225:7777</p>
<?
//    if ($_GET['ip']) $ip = $_GET['ip'];
//    if ($_GET['port']) $port = $_GET['port'];
    //if (!isset($ip))
        
$ip '62.109.14.225';
    
//if (!isset($port))
        
$port 7777;
    
$fp fsockopen('udp://' $ip$port$errno$errstr);
    if (
$fp)
    {
        
$packet 'SAMP';
        
$packet .= chr(strtok($ip'.'));
        
$packet .= chr(strtok('.'));
        
$packet .= chr(strtok('.'));
        
$packet .= chr(strtok('.'));
        
$packet .= chr($port 0xFF);
        
$packet .= chr($port >> 0xFF);
        
fwrite($fp$packet.'i');
        
fread($fp11);
        
$is_passworded ord(fread($fp1));
        
$plr_count     ord(fread($fp2));
        
$max_plrs      ord(fread($fp2));
        
$strlen        ord(fread($fp4));
        
$hostname      fread($fp$strlen);
        
$strlen        ord(fread($fp4));
        
$gamemode      fread($fp$strlen);
        
$strlen        ord(fread($fp4));
        
$mapname       fread($fp$strlen);
        
//echo '      <tr><td bgcolor="#2B5486" colspan="2" align="center"><b>' . $hostname . '</b></td></tr>'."n";
        
echo '<p align = center> Игроки:  ' $plr_count ' / ' $max_plrs '<p>'."";
        
fwrite($fp$packet.'c');
        
fread($fp11);
        
$plr_count ord(fread($fp2));
        if (
$plr_count 0)
        {
            echo 
'    '."";
            echo 
'<p align = center> '."";
            
            
            for (
$i=0$i<$plr_count$i++)
            {
                
$strlen ord(fread($fp1));
                
$plrname fread($fp$strlen);
                
$score samp_getLong(fread($fp4));
                
                echo  
$plrname ." : ".$score  '<p align = center>'."";
            }
        }
        
fclose($fp);
    }
?>

<? function samp_getLong($dat) {
    
$num=0;
    if ((
ord(substr($dat,3,1)) & 128) > 0) {
        for (
$i=0$i<strlen($dat); $i++) {
            
$num-=((255-ord(substr($dat,$i,1))) << 8*$i);
        }
        
$num--;
    } else {
        for (
$i=0$i<strlen($dat); $i++) {
            
$num+=(ord(substr($dat,$i,1)) << 8*$i);
        }
    }
    return 
$num;
}
?>
Reply
#4

Спасибо, попробую
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)