[YL]XF 发表于 2003-9-2 07:26:01

WEB服务器查询软件

如果不会用请与我联系OICQ:66461049

HarryPotter 发表于 2003-9-2 07:36:35

csinfo.php

<head><title>CS服务器状态</title></head><body>
<?function send($fp,$cmd)
{fputs($fp,"\xff\xff\xff\xff$cmd");
$c=fread($fp,1);
if($c=="") return false;
$fpstatus=socket_get_status($fp);
return $c.fread($fp,$fpstatus["unread_bytes"]);
}
$fp=fsockopen("udp://127.0.0.1",27015,&$errno,&$errstr,2);
if(!$fp) exit("错误 - $errno : $errstr");
stream_set_timeout($fp,3);
if(!$c=send($fp,"infostring")) exit("服务器无响应");
$a=explode("\\",substr($c,24));
for($i=0;$i<count($a);$i+=2)
$info[$a[$i]]=$a[$i+1];
echo "<table border><tr><td>服务器名称<td>".$info['hostname']."<tr><td>当前地图<td><b>".$info["map"]."</b></table><table border><caption>当前玩家:<b>".$info["players"]."</b>/".$info["max"]."(".$info["bots"]." BOTs)</caption><tr><th>#<th>名字<th>得分<th>游戏时间";
$c=substr(send($fp,"players"),6);
for($i=1;strlen($c)>0;$i++)
{$tmp=strpos($c,"\x00");
echo "<tr><td>$i<td>".substr($c,1,$tmp);
echo "<td>".(ord($c[$tmp+1])+(ord($c[$tmp+2])<<8)+(ord($c[$tmp+3])<<16)+(ord($c[$tmp+4])<<24));
$tmptime=@unpack('ftime',substr($c,$tmp+5,4));
$t=round($tmptime['time']);$h=floor($t/3600);$m=floor(($t-$h*3600)/60);$sec=floor($t-$h*3600-$m*60);
echo "<td>$h:$m:$sec";
$c=substr($c,$tmp+9);
}
fclose($fp);
for(;$i<=$info["players"];$i++)
echo "<tr><td>$i<td>正在连接...<td>&nbsp;<td>&nbsp;";
?></table>



上面这个是我上个月写的一个查询程序。暂时用ASP写是不可能的,因为ASP不支持UDP操作,除非用第三方的ACTIVEX控件

pic586 发表于 2003-9-2 20:02:52

顶了~

马桶里的c4 发表于 2003-9-3 11:05:24

顶啊

bspxm 发表于 2003-9-4 11:24:12

鹰人 发表于 2003-9-5 00:27:09

狂傲 发表于 2003-9-5 02:43:53

好象不错的说!

xuxianhe 发表于 2003-9-8 15:12:47

楼主,我给你发mail了,不过已经4天了,你都没有回信,能不能给发一份
xxh@pmcc.com.cn

[YL]XF 发表于 2003-9-9 06:14:23

徐先河先生

不好意思,可能是你的信箱的事,我把文件分成两份才发过去

[YL]XF 发表于 2003-9-9 06:15:24

XF

谢谢大家在点通的支持,我会努力的
页: [1] 2 3
查看完整版本: WEB服务器查询软件