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 |
?>
|