/*
United-Steam PHPInfo (USP)
by MUff[99] + Stefan "Steeefan" Heinz
muff99@counter-strike.de, post@steeefan.de
www.counter-strike.de
Ich habe ein kleines PHP Script geschrieben, das bei Aufruf die Versionsnummer und URL des aktuellen CD Clients vom offiziellen UA Server holt. Eingebunden in eure (PHP-)Webpage könnt ihr so einen immer aktuellen Link auf den aktuellen CD Client anbieten bzw. dessen Version ausgeben.
Das Script nutzt dabei denselben Connect wie der CD-Client und funktioniert daher nur mit offiziellen (=non-beta) Versionen.
Ausserdem hat mir Steeefan Einblick in die Sourcen seiner Steam Ampel gewährt, so dass unser kombiniertes Script nun den aktuellen Steamstatus und die aktuelle CD Version von Valve bzw. UA liefert.
Readme:
- usp.zip downloaden und entpacken
- kopiert alle Dateien in euren Webspace und included die PHP wo gebraucht (z.B. include("usp.php") oben in eure index.php)
- setzt Lese/Schreibzugriff für die Datei uavalve (z.B. "chmod 644 uavalve" auf Linuxservern)
- verändert bei Bedarf die Variablen in getdata():
Intervall (in Minuten, default 10)
andere Bildnamen (default Steeefans Ampelbilder)
- auf eurer Page könnt ihr dann sowas einbauen wie:
$myarray = getdata();
In $myarray[0] habt ihr dann die URL
in $myarray[1] die Version als Originalstring aus dem Dateinamen (z.B. 4_20_0)
in $myarray[2] einen formatierten Versionsstring (z.B. 4.20.0)
in $myarray[3] den Bildnamen analog zum derzeitigen Steamstatus
Daraus kann man sich dann nen Link oder einfach nur ne Anzeige basteln.
Macht was ihr wollt mit dem Code, wir sind für nichts, was ihr mit dem Code macht, verantwortlich! Wenn ihr Anregungen habt, schiesst/codet los aber lasst bitte die Credits drin.
thnx an Steeefan, jvm, UA|Vampire, [squidschi]Incub, cit
*/
function cdurl()
{
$connection=fsockopen("www.unitedadmins.com", 80, &$errno, &$errstr, 10);
$request="GET /cdeath-update/client-auto.php HTTP/1.1\r\n".
"Host: www.unitedadmins.com\n\n".
"Cache-Control: no-cache\r\n";
fputs($connection, $request);
for ($i=0;$i<20;$i++)
{
$line=fgets($connection, 1024);
if (stristr($line, 'files') != false) $url = $line;
}
fclose($connection);
if (!empty($url)) {return $url;}
else{return "error";}
}
function getdata()
{
// VARIABLEN - Änderungen können verheerend sein!
$intervall = 10;
$bild_online = "steam_online.jpg";
$bild_offline = "steam_offline.jpg";
$bild_na = "steam_na.jpg";
// VARIABLEN Ende
$checkfile = file('uavalve');
if ($checkfile[0] < time() - ($intervall * 60))
{
$time = fopen('uavalve',w);
$timetemp = time();
fwrite($time,$timetemp);
$status_steam = file('http://www.steampowered.com/status/status.html');
$i = 1;
$cdurl = cdurl();
while ($cdurl == "error")
{
$cdurl = cdurl();
}
$version1 = explode("-", $cdurl);
$version2 = str_replace("_", ".", $version1[2]);
foreach($status_steam as $var)
{
if(substr($var,36,6) == "ONLINE")
{
fwrite($time,"\n$bild_online\n$cdurl");
fclose($time);
$returnme = array($cdurl, $version1[2], $version2, $bild_online, $timetemp);
}
elseif(substr($var,36,7) == "OFFLINE")
{
fwrite($time,"\n$bild_offline\n$cdurl");
fclose($time);
$returnme = array($cdurl, $version1[2], $version2, $bild_offline, $timetemp);
}
elseif(((substr($var,36,6) != "ONLINE") || (substr($var,36,7) != "OFFLINE")) && ($i == 93))
{
if(!$written)
{
fwrite($time,"\n$bild_na\n$cdurl");
fclose($time);
$written = TRUE;
$returnme = array($cdurl, $version1[2], $version2, $bild_na, $timetemp);
}
}
$i++;
}
return $returnme;
}
else
{
$version1 = explode("-", $checkfile[2]);
$version2 = str_replace("_", ".", $version1[2]);
$returnme = array($checkfile[2], $version1[2], $version2, $checkfile[1], $checkfile[0]);
return $returnme;
}
}
$test1 = getdata();
$test1[4] = date("d.m.y H:i", $test1[4]);
print ("[DEMO] cstrike.de - United-Steam PHPInfo:
URL CD Client: $test1[0]
CD Version (unformatiert): $test1[1]
CD Version (formatiert): $test1[2]
Letzte Aktualisierung: $test1[4]
Steam Status:
");
print("
sources: www.unitedadmins.com, www.steampowered.com
Thnx to Steeefan, jvm, UA|Vampire, [squidschi]Incub, cit");
?>