/lenasys/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/trunk
1 by Henrik G.
First seed of Lenasys ... Needs to be Organized Further
1
<?php
2
4.8.1 by galaxyAbstractor
Cleaned up shitty code
3
	// FPS Benchmarking Tool with User Agent Logging
4
5
	// Version 1.0
6
	// 		Basic Insert Only
7
	// Version 2.0
8
	// 		User Agent Parsing (mostly working for Windows Android Linux OSX Meego Maemo SunOS including versions in most)
9
	//		Host Lookup
10
	//
11
	//    Testing is necessary to confirm that it works for more operating systems / browsers etc
12
13
	function versi($string, $sep, $adder)
14
	{
15
		$starts = strpos($string, $sep);
16
		return substr($string, $starts + $adder);
17
	}
18
19
	$userID = substr($_POST['User'], 0, 20);
20
	$app = substr($_POST['App'], 0, 20);
21
	$fps = $_POST['Fps'];
22
	$maxFps = $_POST['MaxFps'];
23
	$runtime = $_POST['RunTime'];
24
	$ip = $_SERVER['REMOTE_ADDR'];
25
	$userAgent = substr($_SERVER['HTTP_USER_AGENT'], 0, 1020);
26
27
	$workstr = $userAgent;
28
29
	$starts = strpos($workstr, "(");
30
	$ends = strpos($workstr, ")");
31
	$ustr = substr($workstr, $starts + 1, $ends - $starts - 1);
32
33
	$host = gethostbyaddr($ip);
34
35
	$splitagent = explode(";", $ustr);
36
37
	$lstr = substr($workstr, $ends + 2);
38
	$splitbrows = explode(" ", $lstr);
39
40
	$os = "";
41
	$osvers = "";
42
43
	foreach($splitagent as $sst) {
44
		if(strpos($sst, "Mac OS X")  !== false) {
45
			$os = "Mac OS X";
46
			$osvers = versi($sst, "Mac OS X", 9);
47
			$osvers = str_replace("_", ".", $osvers);
48
		}
49
		if(strpos($sst, "Windows NT")  !== false) {
50
			$os = "Windows";
51
			$osvers = versi($sst, "Windows NT", 11);
52
		}
53
		if(strpos($sst, "SunOS")  !== false) {
54
			$os = "Solaris";
55
			$osvers = versi($sst, "SunOS", 6);
56
		}
57
		if(strpos($sst, "Android")  !== false) {
58
			$os = "Android";
59
			$osvers = versi($sst, "Android", 7);
60
		}
61
		if(strpos($sst, "MeeGo")  !== false) {
62
			$os = "MeeGo";
63
		}
64
		if(strpos($sst, "Maemo")  !== false) {
65
			$os = "Maemo";
66
		}
67
		if(strpos($sst, "Ubuntu")  !== false) {
68
			$os = "Ubuntu";
69
		}
70
	}
71
72
	if(empty($os)) {
73
		foreach($splitagent as $sst) {
74
			if(strpos($sst, "Linux")  !== false) {
75
				$os = "Linux";
76
				$osvers = versi($sst, "Linux", 5);
77
			}
78
		}
79
	}
80
81
	if(empty($os)) {
82
		echo "<tr>";
83
		echo "<td>UNKNOWN OS</td>";	
84
		foreach($splitagent as $sst) {
85
			echo "<td>".$sst."</td>";	
86
		}
87
		echo "</tr>";	
88
	} 
89
90
	$browser = "";
91
	$bversion = "";
92
93
	foreach($splitagent as $sst) {
94
		if(strpos($sst, "MSIE")  !== false) {
95
			$browser = "Internet Explorer";
96
			$bversion = substr($sst, 6);
97
		}
98
	}
99
100
	foreach($splitbrows as $sst) {
101
		if(strpos($sst, "Chrome/")  !== false) {
102
			$browser = "Chrome";
103
			$bversion = versi($sst, "/", 1);
104
		}
105
		if(strpos($sst, "Safari/")  !== false) {
19.2.5 by elof.bigestans at gmail
* Fixed minor PHP syntax error
106
			if(strcmp($browser, "Chrome") != 0) {
4.8.1 by galaxyAbstractor
Cleaned up shitty code
107
				$browser = "Safari";
108
				$bversion = versi($sst, "/", 1);
109
			}
110
		}		
111
		if(strpos($sst, "Firefox/")  !== false) {
112
			$browser = "Firefox";
113
			$bversion = versi($sst, "/", 1);
114
		}
115
		if(strpos($sst, "Version/")  !== false) {
116
			$browser = "Opera";
117
			$bversion = versi($sst, "/", 1);
118
		}
119
	}
120
121
	if(empty($browser)) {
122
		echo "<tr>";
123
		echo "<td>UNKNOWN BROWSER</td>";	
124
		foreach($splitbrows as $sst) {
125
			echo "<td>". $sst ."</td>";	
126
		}
127
		echo "</tr>";	
128
	}
129
130
	$renderer = "";
131
	$rversion = "";
132
133
	foreach($splitagent as $sst) {
134
		if(strpos($sst, "Trident/")  !== false) {
135
			$renderer = "Trident";
136
			$rversion = versi($sst, "/", 1);
137
		}
138
	}
139
140
	foreach($splitbrows as $sst) {
141
		if(strpos($sst, "Gecko/")  !== false) {
142
			$renderer = "Gecko";
143
			$rversion = versi($sst, "/", 1);
144
		}
145
		if(strpos($sst, "Presto/")  !== false) {
146
			$renderer = "Presto";
147
			$rversion = versi($sst, "/", 1);
148
		}		
149
		if(strpos($sst, "AppleWebKit/")  !== false) {
150
			$renderer = "WebKit";
151
			$rversion = versi($sst, "/", 1);
152
		}
153
	}			
154
155
	if(empty($renderer)) {
156
		echo "<tr>";
157
		echo "<td>UNKNOWN RENDERER</td>";	
158
		foreach($splitbrows as $sst) {
159
			echo "<td>". $sst ."</td>";	
160
		}
161
		echo "</tr>";	
162
	}
163
164
	$pdo  =  new PDO('mysql:dbname = benchy;host = localhost',  'wikiadmin',  'kingfisher');
165
166
	$sql  =  'INSERT INTO benchmark(userID, app, fps, maxfps, runtime, ip, useragent, ts, os, osversion, renderer, rversion, browser, bversion, host) VALUES(:userID, :app, :fps, :maxfps, :runtime, :ip, :useragent, NOW(), :os, :osversion, :renderer, :rversion, :browser, :bversion, :host);';
167
168
	$stmt  =  $pdo->prepare($sql);
169
	$stmt->bindParam(':userID',  $userID);
170
	$stmt->bindParam(':app',  $app);
171
	$stmt->bindParam(':fps',  $fps);
172
	$stmt->bindParam(':maxfps',  $maxFps);
173
	$stmt->bindParam(':runtime',  $runtime);
174
	$stmt->bindParam(':ip',  $ip);
175
	$stmt->bindParam(':useragent',  $userAgent);
176
	$stmt->bindParam(':os',  $os);
177
	$stmt->bindParam(':osversion',  $osvers);
178
	$stmt->bindParam(':browser',  $browser);
179
	$stmt->bindParam(':bversion',  $bversion);
180
	$stmt->bindParam(':renderer',  $renderer);
181
	$stmt->bindParam(':rversion',  $rversion);
182
	$stmt->bindParam(':host',  $host);
183
184
	try { 
185
		$stmt->execute();		   				   
186
	} catch (PDOException $e) {
187
		echo $e->getMessage();
188
	}
1 by Henrik G.
First seed of Lenasys ... Needs to be Organized Further
189
190
?>