3
// FPS Benchmarking Tool with User Agent Logging
8
// User Agent Parsing (mostly working for Windows Android Linux OSX Meego Maemo SunOS including versions in most)
11
// Testing is necessary to confirm that it works for more operating systems / browsers etc
13
function versi($string,$sep,$adder)
15
$starts=strpos($string,$sep);
16
return substr($string,$starts+$adder);
19
$UserID=substr($_POST['User'],0,20);
20
$App=substr($_POST['App'],0,20);
22
$MaxFps=$_POST['MaxFps'];
23
$Runtime=$_POST['RunTime'];
24
$IP=$_SERVER['REMOTE_ADDR'];
25
$UserAgent=substr($_SERVER['HTTP_USER_AGENT'],0,1020);
29
$starts=strpos($workstr,"(");
30
$ends=strpos($workstr,")");
31
$ustr=substr($workstr,$starts+1,$ends-$starts-1);
33
$host=gethostbyaddr($IP);
35
$splitagent=explode(";",$ustr);
37
$lstr=substr($workstr,$ends+2);
38
$splitbrows=explode(" ",$lstr);
43
foreach($splitagent as $sst){
44
if(strpos($sst,"Mac OS X")!==false){
46
$osvers=versi($sst,"Mac OS X",9);
47
$osvers=str_replace("_",".",$osvers);
49
if(strpos($sst,"Windows NT")!==false){
51
$osvers=versi($sst,"Windows NT",11);
53
if(strpos($sst,"SunOS")!==false){
55
$osvers=versi($sst,"SunOS",6);
57
if(strpos($sst,"Android")!==false){
59
$osvers=versi($sst,"Android",7);
61
if(strpos($sst,"MeeGo")!==false){
64
if(strpos($sst,"Maemo")!==false){
67
if(strpos($sst,"Ubuntu")!==false){
72
if(strcmp($os,"")==0){
73
foreach($splitagent as $sst){
74
if(strpos($sst,"Linux")!==false){
76
$osvers=versi($sst,"Linux",5);
81
if(strcmp($os,"")!=0){
84
echo "<td>UNKNOWN OS</td>";
85
foreach($splitagent as $sst){
86
echo "<td>".$sst."</td>";
94
foreach($splitagent as $sst){
95
if(strpos($sst,"MSIE")!==false){
96
$browser="Internet Explorer";
97
$bversion=substr($sst,6);
101
foreach($splitbrows as $sst){
102
if(strpos($sst,"Chrome/")!==false){
104
$bversion=versi($sst,"/",1);
106
if(strpos($sst,"Safari/")!==false){
107
if(strcmp($browser,"Chrome")!=0){
109
$bversion=versi($sst,"/",1);
112
if(strpos($sst,"Firefox/")!==false){
114
$bversion=versi($sst,"/",1);
116
if(strpos($sst,"Version/")!==false){
118
$bversion=versi($sst,"/",1);
122
if(strcmp($browser,"")!=0){
125
echo "<td>UNKNOWN BROWSER</td>";
126
foreach($splitbrows as $sst){
127
echo "<td>".$sst."</td>";
135
foreach($splitagent as $sst){
136
if(strpos($sst,"Trident/")!==false){
138
$rversion=versi($sst,"/",1);
142
foreach($splitbrows as $sst){
143
if(strpos($sst,"Gecko/")!==false){
145
$rversion=versi($sst,"/",1);
147
if(strpos($sst,"Presto/")!==false){
149
$rversion=versi($sst,"/",1);
151
if(strpos($sst,"AppleWebKit/")!==false){
153
$rversion=versi($sst,"/",1);
157
if(strcmp($renderer,"")!=0){
160
echo "<td>UNKNOWN RENDERER</td>";
161
foreach($splitbrows as $sst){
162
echo "<td>".$sst."</td>";
167
$pdo = new PDO('mysql:dbname=benchy;host=localhost', 'wikiadmin', 'kingfisher');
169
$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);';
171
$stmt = $pdo->prepare($sql);
172
$stmt->bindParam(':userid', $UserID);
173
$stmt->bindParam(':app', $App);
174
$stmt->bindParam(':fps', $Fps);
175
$stmt->bindParam(':maxfps', $MaxFps);
176
$stmt->bindParam(':runtime', $Runtime);
177
$stmt->bindParam(':ip', $IP);
178
$stmt->bindParam(':useragent', $UserAgent);
179
$stmt->bindParam(':os', $os);
180
$stmt->bindParam(':osversion', $osvers);
181
$stmt->bindParam(':browser', $browser);
182
$stmt->bindParam(':bversion', $bversion);
183
$stmt->bindParam(':renderer', $renderer);
184
$stmt->bindParam(':rversion', $rversion);
185
$stmt->bindParam(':host', $host);
189
}catch (PDOException $e){
190
echo $e->getMessage();
3
// FPS Benchmarking Tool with User Agent Logging
8
// User Agent Parsing (mostly working for Windows Android Linux OSX Meego Maemo SunOS including versions in most)
11
// Testing is necessary to confirm that it works for more operating systems / browsers etc
13
function versi($string, $sep, $adder)
15
$starts = strpos($string, $sep);
16
return substr($string, $starts + $adder);
19
$userID = substr($_POST['User'], 0, 20);
20
$app = substr($_POST['App'], 0, 20);
22
$maxFps = $_POST['MaxFps'];
23
$runtime = $_POST['RunTime'];
24
$ip = $_SERVER['REMOTE_ADDR'];
25
$userAgent = substr($_SERVER['HTTP_USER_AGENT'], 0, 1020);
27
$workstr = $userAgent;
29
$starts = strpos($workstr, "(");
30
$ends = strpos($workstr, ")");
31
$ustr = substr($workstr, $starts + 1, $ends - $starts - 1);
33
$host = gethostbyaddr($ip);
35
$splitagent = explode(";", $ustr);
37
$lstr = substr($workstr, $ends + 2);
38
$splitbrows = explode(" ", $lstr);
43
foreach($splitagent as $sst) {
44
if(strpos($sst, "Mac OS X") !== false) {
46
$osvers = versi($sst, "Mac OS X", 9);
47
$osvers = str_replace("_", ".", $osvers);
49
if(strpos($sst, "Windows NT") !== false) {
51
$osvers = versi($sst, "Windows NT", 11);
53
if(strpos($sst, "SunOS") !== false) {
55
$osvers = versi($sst, "SunOS", 6);
57
if(strpos($sst, "Android") !== false) {
59
$osvers = versi($sst, "Android", 7);
61
if(strpos($sst, "MeeGo") !== false) {
64
if(strpos($sst, "Maemo") !== false) {
67
if(strpos($sst, "Ubuntu") !== false) {
73
foreach($splitagent as $sst) {
74
if(strpos($sst, "Linux") !== false) {
76
$osvers = versi($sst, "Linux", 5);
83
echo "<td>UNKNOWN OS</td>";
84
foreach($splitagent as $sst) {
85
echo "<td>".$sst."</td>";
93
foreach($splitagent as $sst) {
94
if(strpos($sst, "MSIE") !== false) {
95
$browser = "Internet Explorer";
96
$bversion = substr($sst, 6);
100
foreach($splitbrows as $sst) {
101
if(strpos($sst, "Chrome/") !== false) {
103
$bversion = versi($sst, "/", 1);
105
if(strpos($sst, "Safari/") !== false) {
106
if(strcmp($browser, "Chrome")! = 0) {
108
$bversion = versi($sst, "/", 1);
111
if(strpos($sst, "Firefox/") !== false) {
112
$browser = "Firefox";
113
$bversion = versi($sst, "/", 1);
115
if(strpos($sst, "Version/") !== false) {
117
$bversion = versi($sst, "/", 1);
121
if(empty($browser)) {
123
echo "<td>UNKNOWN BROWSER</td>";
124
foreach($splitbrows as $sst) {
125
echo "<td>". $sst ."</td>";
133
foreach($splitagent as $sst) {
134
if(strpos($sst, "Trident/") !== false) {
135
$renderer = "Trident";
136
$rversion = versi($sst, "/", 1);
140
foreach($splitbrows as $sst) {
141
if(strpos($sst, "Gecko/") !== false) {
143
$rversion = versi($sst, "/", 1);
145
if(strpos($sst, "Presto/") !== false) {
146
$renderer = "Presto";
147
$rversion = versi($sst, "/", 1);
149
if(strpos($sst, "AppleWebKit/") !== false) {
150
$renderer = "WebKit";
151
$rversion = versi($sst, "/", 1);
155
if(empty($renderer)) {
157
echo "<td>UNKNOWN RENDERER</td>";
158
foreach($splitbrows as $sst) {
159
echo "<td>". $sst ."</td>";
164
$pdo = new PDO('mysql:dbname = benchy;host = localhost', 'wikiadmin', 'kingfisher');
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);';
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);
186
} catch (PDOException $e) {
187
echo $e->getMessage();
b'\\ No newline at end of file'