summaryrefslogtreecommitdiff
path: root/web/index.php
blob: 0ff5f5710ada712c07a19fe9520cde45f4112d14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
function var_dump_pre($mixed = null) {
  echo '<pre>';
  var_dump($mixed);
  echo '</pre>';
  return null;
}

function query_source_server($ip = null, $port = null) {
	// https://stackoverflow.com/questions/33454035/counter-strike-go-server-query

	$socket = socket_create(AF_INET, SOCK_DGRAM, 0);
	$result = socket_connect($socket, $ip, $port);

	if($result < 0){
		$server['name']        = "UNKNOWN";
		$server['map']         = "Could not connect";
		$server['game']        = "UNKNOWN";
		$server['description'] = "Could not connect";
		$server['players']     = 0; 
		$server['playersmax']  = 0;
		$server['bots']        = 0;
		$server['dedicated']   = "x";
		$server['os']          = "x";
		$server['password']    = "x";
		$server['vac']         = "Could not connect";
		$server['ip']	       = "X.X.X.X";
		$server['port']        = "00000";

		return $server;
	}

	//         FF  FF  FF  FF  54  53  6F  75  72  63  65  20  45  6E  67  69  6E  65  20  51  75  65  72  79  00
	$data = "\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";
	socket_write($socket, $data, strlen($data));

	$out = socket_read($socket, 4096);

	$queryData             = explode("\x00", substr($out, 6), 5);

	$server['name']        = $queryData[0];
	$server['map']         = $queryData[1];
	$server['game']        = $queryData[2];
	$server['description'] = $queryData[3];
	$packet                = $queryData[4];
	$app_id                = array_pop(unpack("S", substr($packet, 0, 2)));
	$server['players']     = ord(substr($packet, 2, 1));
	$server['playersmax']  = ord(substr($packet, 3, 1));
	$server['bots']        = ord(substr($packet, 4, 1));
	$server['dedicated']   =     substr($packet, 5, 1);
	$server['os']          =     substr($packet, 6, 1);
	$server['password']    = ord(substr($packet, 7, 1));
	$server['vac']         = ord(substr($packet, 8, 1));
	$server['ip']	       = $ip;
	$server['port']	       = $port;

	if ($server['bots'] > 0){
		$server['players'] = ($server['players'] - $server['bots']);
	}

	return $server;
}

function generate_status_div($server = null) {

	echo "<div class=\"statusbox\">\n";
	echo "<H5>" . $server['name'] . "</H5>\n";
	echo "<H6>" . $server['ip'] . ":" . $server['port'] . "</H6>\n";
	echo "<hr/>\n";
	echo $server['description'] . "\n\n";
	echo $server['map'] . "\n";
	echo "Players: " . $server['players'] . "/" . ($server['playersmax'] - 1) . "\n";
	echo "Bots: " . $server['bots'] . "\n\n";
	echo "<hr/>\n";
	echo "<a href=\"steam://connect/" . $server['ip'] . ":" . $server['port']."\">CONNECT</a>&nbsp;&nbsp;<a href='/demos_css/'>DEMOS</a>";

	echo "</div>\n";
}


// ok we are running stuff thats crasy $$$$

	echo file_get_contents("static_elements/h.html"); // Header

//	only server at the moment
	$server1data = query_source_server("45.33.90.90", "27015");
	generate_status_div($server1data);

	echo file_get_contents("static_elements/f.html"); // Footer
?>