Follow along with the video below to see how to install our site as a web app on your home screen.
Бележка: This feature may not be available in some browsers.
<?php
$ip = "web-tourist.net";
$ip = gethostbyname($ip);
$port = "80";
if(@fsockopen($ip,$port,$errno,$errstr,1)) {
$status = "Online";
} else {
$status = "Offline";
}
echo $status;
?>
<?php
$ip = "ипто на сървъра";
$port = "27015"; //порта
if(@fsockopen($ip,$port,$errno,$errstr,1)) {
$status = "Online";
} else {
$status = "Offline";
}
echo $status;
?>
Hi,
udp protocal is connectionless, and you have to check if the server is avaliable by receiving some data from it. The flow is:
1. send data to remote server
2. wait for the server's responsing data
3. response is received indicates it's avaliable, timeout indicates not.
So, you must send some data to the server, and the data should be in the right format that will cause the server to response something to it.
Hope it helps.
<?
//***************************************************
// Peter Huizenga CS status Script v1.0
// This is an Counter Strike Server info script!
//
//
// This Script is Free and may not be for sale in any way!
// You can change it very easy to youre own will,
// and server info!
//
// Thanks Peter Huizenga
// webmaster@clandoa.tk
//***************************************************
// Edit below to youre own server info!
// Server info
$serv_ip = "84.252.43.29"; // IP-to na server
$serv_port = "27015"; // porda
// Site style
$title = "Server Info and player stats"; // Title of the site
$players = "There are no players online!"; // If no players are on the server this message will apere
$pics = "/images/csmaps/"; // Place of the map images!!
$error = "Can't connect to gameserver!<br>Server is down!!"; // Message if no connection to server!
$bgcolor = "#262d40"; // Background color
$font1 = "#FF0000"; // Color of the Error!
$font2 = "#FFFFFF"; // Color of the Name
$font3 = "#f5d300"; // Color of the information leters
$size1 = "10"; // Size of the Error!
$size2 = "4"; // Size of Name
$size3 = "2"; // Size of the information leters
$copy = "#333333"; // color for copyright
$border ="#000000"; // colot tabelen
$tab1 = "#8898A8"; // Tabellenkop
$tab2 = "#41556D"; // Tabellenkleur 2
$creator = true; //true; or false; Support the Creator!
//Do not Edit Below this line!!
//*******************************************************************************************************
function fragsort ($a, $b) {
if ($a["frags"] == $b["frags"]) return 0;
if ($a["frags"] > $b["frags"]) {
return -1;
} else {
return 1;
}
}
Class CounterStrike {
var $m_playerinfo =""; // Info about players
var $m_servervars =""; // Info about the server current map, players etc
var $m_serverrules =""; // Serverrules
//
// Get exact time, used for timeout counting
//
function timenow() {
return doubleval(ereg_replace('^0\.([0-9]*) ([0-9]*)$','\\2.\\1',microtime()));
}
//
// Read raw data from server
//
function getServerData($command,$serveraddress,$portnumber,$waittime) {
$serverdata ="";
$serverdatalen =0;
if ($waittime< 500) $waittime= 500;
if ($waittime>2000) $waittime=2000;
$waittime=doubleval($waittime/1000.0);
if (!$cssocket=fsockopen("udp://".$serveraddress,$portnumber,$errnr)) {
$this->errmsg="No connection";
return "";
}
socket_set_blocking($cssocket,true);
//socket_set_timeout($cssocket,0,500000);
fwrite($cssocket,$command,strlen($command));
// Mark
$starttime=$this->timenow();
do {
$serverdata.=fgetc($cssocket);
$serverdatalen++;
$socketstatus=socket_get_status($cssocket);
if ($this->timenow()>($starttime+$waittime)) {
$this->errmsg="Connection timed out";
fclose($cssocket);
return "";
}
} while ($socketstatus["unread_bytes"] );
fclose($cssocket);
return $serverdata;
}
function getnextstring(&$data) {
$temp="";
$counter=0;
while (ord($data[$counter++])!=0) $temp.=$data[$counter-1];
$data=substr($data,strlen($temp)+1);
return $temp;
}
function getnextbytevalue(&$data) {
$temp=ord($data[0]);
$data=substr($data,1);
return $temp;
}
function getnextfragvalue(&$data) {
$frags=ord($data[0])+(ord($data[1])<<8)+(ord($data[2])<<16)+(ord($data[3])<<24);
if ($frags>=4294967294) $frags-=4294967296;
$data=substr($data,4);
return $frags;
}
function getnextplaytime(&$data) {
$decnumber=ord($data[0])+(ord($data[1])<<8)+(ord($data[2])<<16)+(ord($data[3])<<24);
$binnumber=base_convert($decnumber,10,2);
while (strlen($binnumber) < 32) $binnumber="0".$binnumber;
$exp=abs(base_convert(substr($binnumber,1,8),2,10))-127;
if (substr($binnumber,0,1)=="1") $exp=0-$exp;
$man=1;$manadd=0.5;
for ($counter=9;$counter<32;$counter++) {
if (substr($binnumber,$counter,1)=="1") $man+=$manadd;
$manadd=$manadd/2;
}
$time=round(pow(2,$exp)*$man);
$playtime="";
if ($time>3600) {
$playtime=sprintf("%2dh",$time/3600);
}
$time%=3600;
$playtime=$playtime.sprintf("%2dm",$time/60);
$time%=60;
$playtime=$playtime.sprintf("%2ds",$time);
$data=substr($data,5);
return $playtime;
}
//
// getServerRules
// Read rules/setup from the gameserver into m_serverrules
// Return true if successful
//
function getServerRules($serveraddress,$portnumber,$waittime) {
$cmd="\xFF\xFF\xFF\xFFrules\x00";
$serverdata=$this->getServerData($cmd,$serveraddress,$portnumber,$waittime) ;
// Check length of returned data, if < 5 something went wrong
if (strlen($serverdata)<5) return false;
// Figure out how many rules there are
$rules=(ord($serverdata[5]))+(ord($serverdata[6])*256);
if ($rules!=0) {
// Strip OOB data
$serverdata=substr($serverdata,7);
for ($i=1;$i<=$rules;$i++) {
$rulename =$this->getnextstring($serverdata);
$rulevalue =$this->getnextstring($serverdata);
$this->m_serverrules[$rulename]=$rulevalue;
}
return true;
} else {
return false;
}
}
//
// getServerinfo
// Read information about the gameserver into m_servervars
// Serveraddress,servername,current map etc etc
// Return true if successful
//
function getServerInfo($serveraddress,$portnumber,$waittime) {
$cmd="\xFF\xFF\xFF\xFFinfo\x00";
$serverdata=$this->getServerData($cmd,$serveraddress,$portnumber,$waittime) ;
// Check length of returned data, if < 5 something went wrong
if (strlen($serverdata)<5) return false;
// Strip OOB data
$serverdata=substr($serverdata,5);
$this->m_servervars["serveraddress"] =$this->getnextstring($serverdata);
$this->m_servervars["servername"] =$this->getnextstring($serverdata);
$this->m_servervars["mapname"] =$this->getnextstring($serverdata);
$this->m_servervars["game"] =$this->getnextstring($serverdata);
$this->m_servervars["gamename"] =$this->getnextstring($serverdata);
$this->m_servervars["currentplayers"] =$this->getnextbytevalue($serverdata);
$this->m_servervars["maxplayers"] =$this->getnextbytevalue($serverdata);
return true;
}
//
// Get Playerinfo
// Read information about the players into m_playerinfo
// Name,frags,playtime
// Return true if successful
//
function getServerPlayers($serveraddress,$portnumber,$waittime) {
// Servercommand
$cmd="\xFF\xFF\xFF\xFFplayers\x00";
$serverdata=$this->getServerData($cmd,$serveraddress,$portnumber,$waittime);
// Check length of returned data, if < 5 something went wrong
if (strlen($serverdata)<5) return false;
// Check number of players to read data for
$players=ord($serverdata[5]);
// Strip OOB data and other stuff
$serverdata=substr($serverdata,7);
for ($i=1;$i<=$players;$i++) {
$playername =htmlspecialchars($this->getnextstring($serverdata));
$frags =$this->getnextfragvalue($serverdata);
$playtime =$this->getnextplaytime($serverdata);
$this->m_playerinfo[$i] =array("name"=>$playername,"frags"=>$frags,"time"=>$playtime);
}
// Sort players in fragorder
if ($players>1) usort($this->m_playerinfo,"fragsort");
return true;
}
}
?>
// Server.php
<?php
//Do not Edit Below this line!!
//*******************************************************************************************************
require('counterstrikeClass.php');
?>
<html>
<head>
<TITLE><? echo $title ?></TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></HEAD>
<BODY bgcolor="<? echo $bgcolor ?>">
</head>
<body background="achtergrondje.gif" leftmargin="0" topmargin="7" marginwidth="0" marginheight="0">
<div align="left">
<table width="748" height="355" border="1" cellpadding="1" cellspacing="1" bordercolor="#000000" bgcolor="#F3F3F3">
<tr>
<td height="351" valign="top">
<?
// Get server Adress and port!
$serveradr ="$serv_ip";
$serverport="$serv_port";
// Get server info!
$csinfo=new CounterStrike;
$status=$csinfo->getServerInfo($serveradr,$serverport,1000);
if ($status) {
// Get info about players, frags, timep!
$server = new CounterStrike;
$status=$server->getServerPlayers($serveradr,$serverport,1000);
if ($status) {
?>
<TABLE>
<TR>
<TD width="598" height="196">
<TABLE width="400">
<TR>
<TD width="75"><font color="<? echo $font2 ?>" size="<? echo $size2 ?>">Servername :</font></TD>
<TD width="313"><font color="<? echo $font3 ?>" size="<? echo $size3 ?>">
<?=$csinfo->m_servervars["servername"] ?>
</font></TD>
</TR>
<TR>
<TD><font color="<? echo $font2 ?>" size="<? echo $size2 ?>">Server ip :</font></TD>
<TD><font color="<? echo $font3 ?>" size="<? echo $size3 ?>">
<?=$csinfo->m_servervars["serveraddress"] ?>
</font></TD>
</TR>
<TR>
<TD><font color="<? echo $font2 ?>" size="<? echo $size2 ?>">Spelers :</font></TD>
<TD><font color="<? echo $font3 ?>" size="<? echo $size3 ?>">
<?=$csinfo->m_servervars["currentplayers"] ?>
</font><font color="<? echo $font2 ?>" size="<? echo $size2 ?>">/</font> <font color="<? echo $font3 ?>" size="<? echo $size3 ?>">
<?=$csinfo->m_servervars["maxplayers"]?>
</font></TD>
</TR>
<TR>
<TD><font color="<? echo $font2 ?>" size="<? echo $size2 ?>">Map :</font></TD>
<TD><font color="<? echo $font3 ?>" size="<? echo $size3 ?>">
<?=$csinfo->m_servervars["mapname"]?>
</font></TD>
</TR>
<TR>
<TD COLSPAN="2"> </TD>
</TR>
<TR>
<TD height="106" COLSPAN="2" ALIGN="CENTER">
<div align="left"><IMG
SRC="<?
if(is_file($pics . $csinfo->m_servervars["mapname"] . ".gif")) { print $pics . $csinfo->m_servervars["mapname"] . ".gif"; }
else { print $pics . "cstrike_nopicture.gif"; } ?>" width="130"
height="100" ALT="<?=$csinfo->m_servervars["mapname"]?>"> </div></TD>
</TR>
</TABLE>
<table>
<tr>
<td width="85"><font color="<? echo $font2 ?>" size="<? echo $size2 ?>">Name</font></td>
<td width="78"><font color="<? echo $font2 ?>" size="<? echo $size2 ?>">Frags</font></td>
<td width="84"><font color="<? echo $font2 ?>" size="<? echo $size2 ?>">Time</font></td>
</tr>
<?
if (is_array($server->m_playerinfo)) {
while (list(,$player) = each ($server->m_playerinfo)) {
?>
<tr>
<td><?=$player['name'];?></td>
<td><?=$player['frags'];?></td>
<td><?=$player['time'];?></td>
</tr>
<?
}
} else {
?>
<tr>
<td class="error" colspan="3"><font color="<? echo $font3 ?>" size="<? echo $size13 ?>"><? echo $players ?></font></td>
</tr>
<?
}
?>
</table></TD>
</TR>
<? } else {
} ?>
</TABLE>
<?
} else {
?>
<strong><font color="<? echo $font1 ?>" size="<? echo $size1 ?>"><? echo $error ?></font></strong>
<?
}
?>
<? if($creator) { echo(" <font color='#FFFFFF' size='2'>Peter Huizenga CS status Script v1.0</font>"); } ?> </td>
</tr>
</table>
</div>
</body>
</html>
<?
$ip = "88.203.208.25";
$ip = gethostbyname($ip);
$port = "27015";
if($sock = @fsockopen($ip,$port,$errno,$errstr,1))
{
fgetc($sock);
$status = '<B><FONT COLOR=red>Offline</b></FONT>';
}
else
{
$status = '<B><FONT COLOR=lime>Online</b></FONT>';
}
echo "<table border='1'>
<tr><td><center>Сървар IP</center></td><td><center>Порт</center></td><td>Статус</td></tr>
<tr><td width='20'>$ip</td><td>$port</td><td><center>$status</center></td></tr>
</table>";
?>
Wicz каза:Код:<? $ip = "88.203.208.25"; $ip = gethostbyname($ip); $port = "27015"; if($sock = @fsockopen($ip,$port,$errno,$errstr,1)) { fgetc($sock); $status = '<B><FONT COLOR=red>Offline</b></FONT>'; } else { $status = '<B><FONT COLOR=lime>Online</b></FONT>'; } echo "<table border='1'> <tr><td><center>Сървар IP</center></td><td><center>Порт</center></td><td>Статус</td></tr> <tr><td width='20'>$ip</td><td>$port</td><td><center>$status</center></td></tr> </table>"; ?>
така трябва да стане..
Мисля, че това е по добре http://www.amxmodxbg.org/forum/viewtopic.php?t=4428
<?php
$ip1 ="asd"]; //ипто
$port1 = "sad"; //порта
$output = @fsockopen("udp://$ip1", $port1, $errno, $errstr, 0.25);
@socket_set_timeout($output, 1);
@socket_set_blocking($output, 1);
@fwrite($output, "\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00");
$buffer = @fread($output, 4096);
if (!$buffer) {
$on = "<font color=\"red\">offline</font>";
} else {
$on = "<font color=\"green\">online</font>";
}
echo $on;
?>
slideR каза:Е стана ли ??
<?php
$ip1 ="asd"; //ипто
$port1 = "sad"; //порта
$output = @fsockopen("udp://$ip1", $port1, $errno, $errstr, 0.25);
@socket_set_timeout($output, 1);
@socket_set_blocking($output, 1);
@fwrite($output, "\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00");
$buffer = @fread($output, 4096);
if (!$buffer) {
$on = "<font color=\"red\">offline</font>";
} else {
$on = "<font color=\"green\">online</font>";
}
echo $on;
?>
FreeStylerz каза:Код:<?php $ip1 ="asd"; //ипто $port1 = "sad"; //порта $output = @fsockopen("udp://$ip1", $port1, $errno, $errstr, 0.25); @socket_set_timeout($output, 1); @socket_set_blocking($output, 1); @fwrite($output, "\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00"); $buffer = @fread($output, 4096); if (!$buffer) { $on = "<font color="red">offline</font>"; } else { $on = "<font color="green">online</font>"; } echo $on; ?>