<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.minegoboom.com/index.php?action=history&amp;feed=atom&amp;title=PHP_ping_client</id>
		<title>PHP ping client - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.minegoboom.com/index.php?action=history&amp;feed=atom&amp;title=PHP_ping_client"/>
		<link rel="alternate" type="text/html" href="http://wiki.minegoboom.com/index.php?title=PHP_ping_client&amp;action=history"/>
		<updated>2026-05-05T14:42:59Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>http://wiki.minegoboom.com/index.php?title=PHP_ping_client&amp;diff=5857&amp;oldid=prev</id>
		<title>Goldeye: Added category:utilities</title>
		<link rel="alternate" type="text/html" href="http://wiki.minegoboom.com/index.php?title=PHP_ping_client&amp;diff=5857&amp;oldid=prev"/>
				<updated>2007-12-26T13:16:26Z</updated>
		
		<summary type="html">&lt;p&gt;Added category:utilities&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 13:16, 26 December 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l116&quot; &gt;Line 116:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 116:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;?&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;?&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Utilities]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mgb_assswiki:diff:version:1.11a:oldid:5856:newid:5857 --&gt;
&lt;/table&gt;</summary>
		<author><name>Goldeye</name></author>	</entry>

	<entry>
		<id>http://wiki.minegoboom.com/index.php?title=PHP_ping_client&amp;diff=5856&amp;oldid=prev</id>
		<title>Goldeye: Initial -- pasted the code</title>
		<link rel="alternate" type="text/html" href="http://wiki.minegoboom.com/index.php?title=PHP_ping_client&amp;diff=5856&amp;oldid=prev"/>
				<updated>2007-12-26T13:14:06Z</updated>
		
		<summary type="html">&lt;p&gt;Initial -- pasted the code&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Version 1.0 of this PHP class was produced by Goldeye on 12/26/07.  It provides functions to report on the number of players logged on -- as well as the number playing -- in an ASSS zone or specific arenas.&lt;br /&gt;
It is currently only compatible with ASSS's new [[Ping_Protocol]].&lt;br /&gt;
It's intended function is to put this information on a zone's website.&lt;br /&gt;
&lt;br /&gt;
The code at the top is demonstration using SSCE and it's two most active arenas.  It can be removed without affecting the class.&lt;br /&gt;
Basic PHP knowledge is required to adapt the script &lt;br /&gt;
&lt;br /&gt;
Feel free to contact the author with any requests or bugs with the script.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
  //ServerPopulation.php v1.0 &lt;br /&gt;
  // by Goldeye 12/26/07&lt;br /&gt;
  // Goldeye.Ichiban@gmail.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  //Errors are silent and the recv times out default 100ms.&lt;br /&gt;
  //Updates occur no more than once in 60 sec by default anyway. &lt;br /&gt;
$hz = new ServerPopulation(&amp;quot;67.19.122.82&amp;quot;,7502);&lt;br /&gt;
$total = $hz-&amp;gt;get_server_total();&lt;br /&gt;
$playing = $hz-&amp;gt;get_server_playing();&lt;br /&gt;
$spec = $total-$playing;&lt;br /&gt;
$pub0=$hz-&amp;gt;get_arena(&amp;quot;0&amp;quot;);&lt;br /&gt;
$fb=$hz-&amp;gt;get_arena(&amp;quot;football&amp;quot;);&lt;br /&gt;
//Note: name automatically lowercased before it gets here.&lt;br /&gt;
print &amp;quot;Total: $playing playing, $spec spectating, $total logged in.\n&amp;quot;;&lt;br /&gt;
print &amp;quot;(Public 0): $pub0[playing] playing, $pub0[spec] spectating, $pub0[total] logged in.\n&amp;quot;;&lt;br /&gt;
print &amp;quot;Football: $fb[playing] playing, $fb[spec] spectating, $fb[total] logged in.\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
class ServerPopulation&lt;br /&gt;
{&lt;br /&gt;
  var $host;&lt;br /&gt;
  var $port;&lt;br /&gt;
  var $last_time;&lt;br /&gt;
  var $update_time;&lt;br /&gt;
  var $timeout;&lt;br /&gt;
  var $arenas = array();&lt;br /&gt;
  var $total;&lt;br /&gt;
  var $playing;&lt;br /&gt;
&lt;br /&gt;
  function ServerPopulation($host,$port,$update_time=60,$timeout=100)&lt;br /&gt;
  { //For PHP4&lt;br /&gt;
    $this-&amp;gt;__construct($host,$port,$update_time,$timeout);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function __construct($host,$port,$update_time=60,$timeout=100)&lt;br /&gt;
  { //For PHP5&lt;br /&gt;
    $this-&amp;gt;host = $host;&lt;br /&gt;
    $this-&amp;gt;port = $port;&lt;br /&gt;
    $this-&amp;gt;update_time=$update_time;&lt;br /&gt;
    $this-&amp;gt;timeout=$timeout*1000;&lt;br /&gt;
    $this-&amp;gt;update();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function get_server_total()&lt;br /&gt;
  {&lt;br /&gt;
    return $this-&amp;gt;total;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function get_server_playing()&lt;br /&gt;
  {&lt;br /&gt;
    return $this-&amp;gt;playing;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  function get_arena($name)&lt;br /&gt;
  {&lt;br /&gt;
    return $this-&amp;gt;arenas[$name];&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function get_arena_array()&lt;br /&gt;
  {&lt;br /&gt;
    return $this-&amp;gt;arenas;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  function update()&lt;br /&gt;
  {&lt;br /&gt;
    if(time()-$this-&amp;gt;last_time &amp;lt; $this-&amp;gt;update_time)&lt;br /&gt;
      return;&lt;br /&gt;
      &lt;br /&gt;
    $socket = socket_create(AF_INET, SOCK_DGRAM, 0);&lt;br /&gt;
    $rcvtimeo[&amp;quot;sec&amp;quot;]=0;&lt;br /&gt;
    $rcvtimeo[&amp;quot;usec&amp;quot;]=$this-&amp;gt;timeout;&lt;br /&gt;
    socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,$rcvtimeo);&lt;br /&gt;
    $result = socket_connect($socket,$this-&amp;gt;host,$this-&amp;gt;port);&lt;br /&gt;
    if(!$socket || !$result) return;&lt;br /&gt;
    $out=pack(&amp;quot;VV&amp;quot;,0,0x01|0x02);&lt;br /&gt;
    socket_write($socket, $out, 8);&lt;br /&gt;
    if(@socket_recv($socket,&amp;amp;$in,512,0) &amp;lt; 1)&lt;br /&gt;
      return;&lt;br /&gt;
    $res = unpack(&amp;quot;Vtime/Voptions&amp;quot;,$in);&lt;br /&gt;
    $opt = $res[&amp;quot;options&amp;quot;];&lt;br /&gt;
    if($opt &amp;amp; 0x01) // Server info included.&lt;br /&gt;
      {&lt;br /&gt;
	$in = substr($in,8);&lt;br /&gt;
	$res = unpack( &amp;quot;Vtotal/Vplaying&amp;quot;,$in);&lt;br /&gt;
	$this-&amp;gt;total = $res[&amp;quot;total&amp;quot;];&lt;br /&gt;
	$this-&amp;gt;playing = $res[&amp;quot;playing&amp;quot;];&lt;br /&gt;
      }&lt;br /&gt;
    if($opt &amp;amp; 0x02) // Arena info included.&lt;br /&gt;
      {&lt;br /&gt;
	$in = substr($in,8);&lt;br /&gt;
	do &lt;br /&gt;
	  {&lt;br /&gt;
	    $n = strpos($in,0x00);&lt;br /&gt;
	    $name = strtolower(substr($in,0,$n));&lt;br /&gt;
	    $in = substr($in,$n+1);&lt;br /&gt;
	    $res = unpack(&amp;quot;vtotal/vplaying&amp;quot;,$in);&lt;br /&gt;
	    $res[&amp;quot;spec&amp;quot;]=$res[&amp;quot;total&amp;quot;]-$res[&amp;quot;playing&amp;quot;];&lt;br /&gt;
	    $in = substr($in,4);&lt;br /&gt;
	    $this-&amp;gt;arenas[$name]=$res;&lt;br /&gt;
	  }	  &lt;br /&gt;
	while(strlen($in)&amp;gt;1);&lt;br /&gt;
      }&lt;br /&gt;
    $this-&amp;gt;last_time=time();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Goldeye</name></author>	</entry>

	</feed>