[php] Информация о сервере - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: Non-English (
https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (
https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (
https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: [php] Информация о сервере (
/showthread.php?tid=316496)
[php] Информация о сервере -
mihan-888 - 07.02.2012
Слышал, что есть возможности узнать информацию о сервере без помощи SampQueryAPI.
Хотелось бы побольше о них узнать...
Re: [php] Информация о сервере -
Stepashka - 08.02.2012
А где слышали?
Своего сервера или других?
Re: [php] Информация о сервере -
jhonyxakep - 12.02.2012
Использовал со своим сервером, код грязный, непорядочный, но рабочий. Разбирайтесь
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 >> 8 & 0xFF);
fwrite($fp, $packet.'i');
fread($fp, 11);
$is_passworded = ord(fread($fp, 1));
$plr_count = ord(fread($fp, 2));
$max_plrs = ord(fread($fp, 2));
$strlen = ord(fread($fp, 4));
$hostname = fread($fp, $strlen);
$strlen = ord(fread($fp, 4));
$gamemode = fread($fp, $strlen);
$strlen = ord(fread($fp, 4));
$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($fp, 11);
$plr_count = ord(fread($fp, 2));
if ($plr_count > 0)
{
echo ' '."";
echo '<p align = center> '."";
for ($i=0; $i<$plr_count; $i++)
{
$strlen = ord(fread($fp, 1));
$plrname = fread($fp, $strlen);
$score = samp_getLong(fread($fp, 4));
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;
}
?>
Re: [php] Информация о сервере -
mihan-888 - 14.02.2012
Спасибо, попробую