Added page to view daily query log history

This commit is contained in:
Brice Johnson
2016-02-13 00:01:50 -06:00
parent e73ba8b28c
commit b80c373cfa
5 changed files with 105 additions and 5 deletions
+4
View File
@@ -43,6 +43,10 @@
$data = array_merge($data, getQuerySources());
}
if (isset($_GET['getAllQueries'])) {
$data = array_merge($data, getAllQueries());
}
echo json_encode($data);
?>
+20
View File
@@ -117,6 +117,26 @@
return $sources;
}
function getAllQueries() {
$allQueries = array("data" => array());
$log = readInLog();
$dns_queries = getDnsQueries($log);
foreach ($dns_queries as $query) {
$time = date_create(substr($query, 0, 16), new DateTimeZone('GMT'))->SetTimeZone(new DateTimeZone(date_default_timezone_get()));
$exploded = explode(" ", trim($query));
array_push($allQueries['data'], array(
$time->format('Y-m-d\TH:i:s'),
substr($exploded[4], 6, -1),
$exploded[5],
$exploded[7],
));
}
return $allQueries;
}
/******** Private Members ********/
function readInBlockList() {
global $domains;
+2 -1
View File
@@ -14,7 +14,8 @@
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" type="text/javascript"></script>
<script src="./js/app.min.js" type="text/javascript"></script>
<script src="https://cdn.datatables.net/1.10.10/js/dataTables.bootstrap.min.js" type="text/javascript"></script>
<script src="https://cdn.datatables.net/1.10.11/js/jquery.dataTables.min.js" type="text/javascript"></script>
<script src="https://cdn.datatables.net/1.10.11/js/dataTables.bootstrap.min.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.min.js"></script>
</body>
+10 -4
View File
@@ -9,7 +9,7 @@
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
<link href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css" rel="stylesheet" type="text/css" />
<link href="https://cdn.datatables.net/1.10.10/css/dataTables.bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="https://cdn.datatables.net/1.10.11/css/dataTables.bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="./css/AdminLTE.min.css" rel="stylesheet" type="text/css" />
<link href="./css/skin-blue.min.css" rel="stylesheet" type="text/css" />
@@ -112,10 +112,10 @@
<i class="fa fa-home"></i> <span>Main Page</span>
</a>
</li>
<!-- Donate -->
<!-- Query Log -->
<li>
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3J2L3Z4DHW9UY">
<i class="fa fa-paypal"></i> <span>Donate</span>
<a href="queries.php">
<i class="fa fa-file-text-o"></i> <span>Query Log</span>
</a>
</li>
<!-- Whitelist -->
@@ -130,6 +130,12 @@
<i class="fa fa-pencil-square-o"></i> <span>Blacklist</span>
</a>
</li>
<!-- Donate -->
<li>
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3J2L3Z4DHW9UY">
<i class="fa fa-paypal"></i> <span>Donate</span>
</a>
</li>
</ul>
</section>
<!-- /.sidebar -->
+69
View File
@@ -0,0 +1,69 @@
<?php
require "header.html";
?>
<!--
<div class="row">
<div class="col-md-12">
<button class="btn btn-info margin-bottom pull-right">Refresh Data</button>
</div>
</div>
-->
<div class="row">
<div class="col-md-12">
<div class="box" id="recent-queries">
<div class="box-header with-border">
<h3 class="box-title">Recent Queries</h3>
</div>
<!-- /.box-header -->
<div class="box-body">
<table id="all-queries" class="display table table-striped table-bordered" cellspacing="0" width="100%">
<thead>
<tr>
<th>Time</th>
<th>Type</th>
<th>Domain</th>
<th>Client</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Time</th>
<th>Type</th>
<th>Domain</th>
<th>Client</th>
</tr>
</tfoot>
</table>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
</div>
</div>
<!-- /.row -->
<?php
require "footer.html";
?>
<script type="text/javascript">
$(document).ready(function() {
tableApi = $('#all-queries').DataTable( {
"ajax": "api.php?getAllQueries",
"autoWidth" : false,
"order" : [[0, "desc"]],
"columns": [
{ "width" : "20%", "type": "date" },
{ "width" : "10%" },
{ "width" : "40%" },
{ "width" : "15%" },
]
})
} );
function refreshData() {
tableApi.ajax.url("api.php?getAllQuerie").load();
}
</script>