Example #1
0
 public function get($dateTimeUnix, $ipAddress)
 {
     $returnData = [];
     $logFile = sprintf('%s/log.json', $this->dataDir);
     $logData = FileIO::readJsonFile($logFile);
     foreach ($logData['entries'] as $k => $v) {
         $connectTime = $v['connect_time'];
         $disconnectTime = array_key_exists('disconnect_time', $v) ? $v['disconnect_time'] : null;
         if ($connectTime <= $dateTimeUnix && (is_null($disconnectTime) || $disconnectTime >= $dateTimeUnix)) {
             // XXX edge cases? still connected? just disconnected?
             $v4 = $v['v4'];
             $v6 = $v['v6'];
             if ($v4 === $ipAddress || $v6 === $ipAddress) {
                 $returnData[] = ['user_id' => $v['user_id'], 'v4' => $v4, 'v6' => $v6, 'config_name' => $v['config_name'], 'connect_time' => $connectTime, 'disconnect_time' => $disconnectTime];
             }
         }
     }
     // XXX could there actually be multiple results?
     return $returnData;
 }
Example #2
0
 */
require_once sprintf('%s/vendor/autoload.php', dirname(__DIR__));
use SURFnet\VPN\Common\FileIO;
use SURFnet\VPN\Common\CliParser;
try {
    $p = new CliParser('Generate statistics for an instance', ['instance' => ['the instance', true, true]]);
    $opt = $p->parse($argv);
    if ($opt->e('help')) {
        echo $p->help();
        exit(0);
    }
    $dataDir = sprintf('%s/data/%s', dirname(__DIR__), $opt->v('instance'));
    $inFile = sprintf('%s/log.json', $dataDir);
    $outFile = sprintf('%s/stats.json', $dataDir);
    $statsData = [];
    $logData = FileIO::readJsonFile($inFile);
    $timeConnection = [];
    $uniqueUsers = [];
    foreach ($logData['entries'] as $entry) {
        $dateOfConnection = date('Y-m-d', $entry['connect_time']);
        if (!array_key_exists($dateOfConnection, $statsData)) {
            $statsData[$dateOfConnection] = [];
        }
        if (!array_key_exists('number_of_connections', $statsData[$dateOfConnection])) {
            $statsData[$dateOfConnection]['number_of_connections'] = 0;
        }
        if (!array_key_exists('traffic', $statsData[$dateOfConnection])) {
            $statsData[$dateOfConnection]['traffic'] = 0;
        }
        if (!array_key_exists('user_list', $statsData[$dateOfConnection])) {
            $statsData[$dateOfConnection]['user_list'] = [];