Răsfoiți Sursa

Output from getIP (IP and ISP info) is now stored in the results database

adolfintel 7 ani în urmă
părinte
comite
cfbbfa3e58
7 a modificat fișierele cu 20 adăugiri și 23 ștergeri
  1. 2 2
      doc.md
  2. 4 3
      speedtest_worker.js
  3. 0 0
      speedtest_worker.min.js
  4. 11 8
      telemetry.php
  5. 1 9
      telemetry_mysql.sql
  6. 1 0
      telemetry_postgresql.sql
  7. 1 1
      telemetry_settings.php

+ 2 - 2
doc.md

@@ -330,7 +330,7 @@ If you see a table called `speedtest_users`, empty, you did it right.
 
 
 ### Configuring `telemetry.php`
 ### Configuring `telemetry.php`
 Open telemetry_settings.php with notepad or a similar text editor.
 Open telemetry_settings.php with notepad or a similar text editor.
-Set your preferred database, ``$db_type="mysql";``, ``$db_type="sqlite";``, ``$db_type="postgresql";`` or or ``$db_type="csv";``
+Set your preferred database, ``$db_type="mysql";``, ``$db_type="sqlite";``, ``$db_type="postgresql";`` or ``$db_type="csv";``
 If you choose to use Sqlite3, you must set the path to your database file:
 If you choose to use Sqlite3, you must set the path to your database file:
 ```php
 ```php
 $Sqlite_db_file = "../telemetry.sql";
 $Sqlite_db_file = "../telemetry.sql";
@@ -363,7 +363,7 @@ __Note__: CSV currently only supports basic telemetry, the log will not be saved
 Edit your test page; where you start the worker, you need to specify the `telemetry_level`.  
 Edit your test page; where you start the worker, you need to specify the `telemetry_level`.  
 There are 3 levels:
 There are 3 levels:
 * `none`: telemetry is disabled (default)
 * `none`: telemetry is disabled (default)
-* `basic`: telemetry collects IP, User Agent, Preferred language, Test results
+* `basic`: telemetry collects IP, ISP info, User Agent, Preferred language, Test results
 * `full`: same as above, but also collects a log (10-150 Kb each, not recommended)
 * `full`: same as above, but also collects a log (10-150 Kb each, not recommended)
 
 
 Example:
 Example:

+ 4 - 3
speedtest_worker.js

@@ -442,7 +442,7 @@ function pingTest (done) {
         if (i < settings.count_ping) doPing(); else done() // more pings to do?
         if (i < settings.count_ping) doPing(); else done() // more pings to do?
       }
       }
     }.bind(this)
     }.bind(this)
-    // sent xhr
+    // send xhr
     xhr[0].open('GET', settings.url_ping + url_sep(settings.url_ping) + 'r=' + Math.random(), true) // random string to prevent caching
     xhr[0].open('GET', settings.url_ping + url_sep(settings.url_ping) + 'r=' + Math.random(), true) // random string to prevent caching
     xhr[0].send()
     xhr[0].send()
   }.bind(this)
   }.bind(this)
@@ -457,14 +457,15 @@ function sendTelemetry(){
   xhr.open('POST', settings.url_telemetry+url_sep(settings.url_telemetry)+"r="+Math.random(), true);
   xhr.open('POST', settings.url_telemetry+url_sep(settings.url_telemetry)+"r="+Math.random(), true);
   try{
   try{
     var fd = new FormData()
     var fd = new FormData()
-    fd.append('dl', dlStatus)
+    fd.append('ispinfo', clientIp) //clientIp also contains ISP info
+	fd.append('dl', dlStatus)
     fd.append('ul', ulStatus)
     fd.append('ul', ulStatus)
     fd.append('ping', pingStatus)
     fd.append('ping', pingStatus)
     fd.append('jitter', jitterStatus)
     fd.append('jitter', jitterStatus)
     fd.append('log', settings.telemetry_level>1?log:"")
     fd.append('log', settings.telemetry_level>1?log:"")
     xhr.send(fd)
     xhr.send(fd)
   }catch(ex){
   }catch(ex){
-    var postData = 'dl='+encodeURIComponent(dlStatus)+'&ul='+encodeURIComponent(ulStatus)+'&ping='+encodeURIComponent(pingStatus)+'&jitter='+encodeURIComponent(jitterStatus)+'&log='+encodeURIComponent(settings.telemetry_level>1?log:'')
+    var postData = 'ispinfo='+encodeURIComponent(clientIp)+'dl='+encodeURIComponent(dlStatus)+'&ul='+encodeURIComponent(ulStatus)+'&ping='+encodeURIComponent(pingStatus)+'&jitter='+encodeURIComponent(jitterStatus)+'&log='+encodeURIComponent(settings.telemetry_level>1?log:'')
     xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
     xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
     xhr.send(postData)
     xhr.send(postData)
   }
   }

Fișier diff suprimat deoarece este prea mare
+ 0 - 0
speedtest_worker.min.js


+ 11 - 8
telemetry.php

@@ -2,6 +2,7 @@
 include_once('telemetry_settings.php');
 include_once('telemetry_settings.php');
 
 
 $ip=($_SERVER['REMOTE_ADDR']);
 $ip=($_SERVER['REMOTE_ADDR']);
+$ispinfo=($_POST["ispinfo"]);
 $ua=($_SERVER['HTTP_USER_AGENT']);
 $ua=($_SERVER['HTTP_USER_AGENT']);
 $lang=""; if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) $lang=($_SERVER['HTTP_ACCEPT_LANGUAGE']);
 $lang=""; if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) $lang=($_SERVER['HTTP_ACCEPT_LANGUAGE']);
 $dl=($_POST["dl"]);
 $dl=($_POST["dl"]);
@@ -12,8 +13,8 @@ $log=($_POST["log"]);
 
 
 if($db_type=="mysql"){
 if($db_type=="mysql"){
     $conn = new mysqli($MySql_hostname, $MySql_username, $MySql_password, $MySql_databasename) or die("1");
     $conn = new mysqli($MySql_hostname, $MySql_username, $MySql_password, $MySql_databasename) or die("1");
-    $stmt = $conn->prepare("INSERT INTO speedtest_users (ip,ua,lang,dl,ul,ping,jitter,log) VALUES (?,?,?,?,?,?,?,?)") or die("2");
-    $stmt->bind_param("ssssssss",$ip,$ua,$lang,$dl,$ul,$ping,$jitter,$log) or die("3");
+    $stmt = $conn->prepare("INSERT INTO speedtest_users (ip,ispinfo,ua,lang,dl,ul,ping,jitter,log) VALUES (?,?,?,?,?,?,?,?,?)") or die("2");
+    $stmt->bind_param("sssssssss",$ip,$ispinfo,$ua,$lang,$dl,$ul,$ping,$jitter,$log) or die("3");
     $stmt->execute() or die("4");
     $stmt->execute() or die("4");
     $stmt->close() or die("5");
     $stmt->close() or die("5");
     $conn->close() or die("6");
     $conn->close() or die("6");
@@ -23,6 +24,7 @@ if($db_type=="mysql"){
     $conn->exec("
     $conn->exec("
         CREATE TABLE IF NOT EXISTS `speedtest_users` (
         CREATE TABLE IF NOT EXISTS `speedtest_users` (
         `id`    INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
         `id`    INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
+		`ispinfo`    text,
         `timestamp`     timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
         `timestamp`     timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
         `ip`    text NOT NULL,
         `ip`    text NOT NULL,
         `ua`    text NOT NULL,
         `ua`    text NOT NULL,
@@ -34,8 +36,8 @@ if($db_type=="mysql"){
         `log`   longtext
         `log`   longtext
         );
         );
     ");
     ");
-    $stmt = $conn->prepare("INSERT INTO speedtest_users (ip,ua,lang,dl,ul,ping,jitter,log) VALUES (?,?,?,?,?,?,?,?)") or die("2");
-    $stmt->execute(array($ip,$ua,$lang,$dl,$ul,$ping,$jitter,$log)) or die("3");
+    $stmt = $conn->prepare("INSERT INTO speedtest_users (ip,ispinfo,ua,lang,dl,ul,ping,jitter,log) VALUES (?,?,?,?,?,?,?,?,?)") or die("2");
+    $stmt->execute(array($ip,$ispinfo,$ua,$lang,$dl,$ul,$ping,$jitter,$log)) or die("3");
     $conn = null;
     $conn = null;
 }elseif($db_type=="postgresql"){
 }elseif($db_type=="postgresql"){
     // Prepare connection parameters for db connection
     // Prepare connection parameters for db connection
@@ -45,8 +47,8 @@ if($db_type=="mysql"){
     $conn_password = "password=$PostgreSql_password";
     $conn_password = "password=$PostgreSql_password";
     // Create db connection
     // Create db connection
     $conn = new PDO("pgsql:$conn_host;$conn_db;$conn_user;$conn_password") or die("1");
     $conn = new PDO("pgsql:$conn_host;$conn_db;$conn_user;$conn_password") or die("1");
-    $stmt = $conn->prepare("INSERT INTO speedtest_users (ip,ua,lang,dl,ul,ping,jitter,log) VALUES (?,?,?,?,?,?,?,?)") or die("2");
-    $stmt->execute(array($ip,$ua,$lang,$dl,$ul,$ping,$jitter,$log)) or die("3");
+    $stmt = $conn->prepare("INSERT INTO speedtest_users (ip,ispinfo,ua,lang,dl,ul,ping,jitter,log) VALUES (?,?,?,?,?,?,?,?,?)") or die("2");
+    $stmt->execute(array($ip,$ispinfo,$ua,$lang,$dl,$ul,$ping,$jitter,$log)) or die("3");
     $conn = null;
     $conn = null;
 }
 }
 elseif($db_type=="csv"){
 elseif($db_type=="csv"){
@@ -55,6 +57,7 @@ elseif($db_type=="csv"){
     $date = date('Y-m-d H:i:s');
     $date = date('Y-m-d H:i:s');
     $str = '"' . $date . '",';
     $str = '"' . $date . '",';
     $str .= '"' . $ip . '",';
     $str .= '"' . $ip . '",';
+	$str .= '"' . $ispinfo . '",';
     $str .= '"' . $ua . '",';
     $str .= '"' . $ua . '",';
     $str .= '"' . $dl . '",';
     $str .= '"' . $dl . '",';
     $str .= '"' . $ul . '",';
     $str .= '"' . $ul . '",';
@@ -63,11 +66,11 @@ elseif($db_type=="csv"){
 
 
     // Set header if this is a new file
     // Set header if this is a new file
     if (!file_exists($Csv_File)) {
     if (!file_exists($Csv_File)) {
-        $header = '"date","ip","ua","download","upload","ping","jitter"' . "\n";
+        $header = '"date","ip","ispinfo","ua","download","upload","ping","jitter"' . "\n";
         file_put_contents($Csv_File, $header, FILE_APPEND);
         file_put_contents($Csv_File, $header, FILE_APPEND);
     }
     }
 
 
-    // Writting line to file
+    // Write line to file
     file_put_contents($Csv_File, $str, FILE_APPEND);
     file_put_contents($Csv_File, $str, FILE_APPEND);
 }
 }
 ?>
 ?>

+ 1 - 9
telemetry_mysql.sql

@@ -1,12 +1,3 @@
--- phpMyAdmin SQL Dump
--- version 4.7.0
--- https://www.phpmyadmin.net/
---
--- Host: 127.0.0.1
--- Generation Time: Aug 24, 2017 at 02:16 PM
--- Server version: 10.1.25-MariaDB
--- PHP Version: 7.1.7
-
 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
 SET AUTOCOMMIT = 0;
 SET AUTOCOMMIT = 0;
 START TRANSACTION;
 START TRANSACTION;
@@ -32,6 +23,7 @@ CREATE TABLE `speedtest_users` (
   `id` int(11) NOT NULL,
   `id` int(11) NOT NULL,
   `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
   `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
   `ip` text NOT NULL,
   `ip` text NOT NULL,
+  `ispinfo` text,
   `ua` text NOT NULL,
   `ua` text NOT NULL,
   `lang` text NOT NULL,
   `lang` text NOT NULL,
   `dl` text,
   `dl` text,

+ 1 - 0
telemetry_postgresql.sql

@@ -42,6 +42,7 @@ CREATE TABLE speedtest_users (
     id integer NOT NULL,
     id integer NOT NULL,
     "timestamp" timestamp without time zone DEFAULT now() NOT NULL,
     "timestamp" timestamp without time zone DEFAULT now() NOT NULL,
     ip text NOT NULL,
     ip text NOT NULL,
+	ispinfo text,
     ua text NOT NULL,
     ua text NOT NULL,
     lang text NOT NULL,
     lang text NOT NULL,
     dl text,
     dl text,

+ 1 - 1
telemetry_settings.php

@@ -1,6 +1,6 @@
 <?php
 <?php
 
 
-$db_type="mysql"; //Type of db: "mysql", "sqlite" or "postgresql" or "csv"
+$db_type="mysql"; //Type of db: "mysql", "sqlite", "postgresql" or "csv"
 
 
 // Sqlite3 settings
 // Sqlite3 settings
 $Sqlite_db_file = "../telemetry.sql";
 $Sqlite_db_file = "../telemetry.sql";

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff