ntopng/httpdocs/inc/mac_stats_id.inc
2022-03-09 18:27:06 +01:00

91 lines
2.5 KiB
PHP

// ---------------- Automatic mac table update code ------------------------
function mac_table_setID (row) {
var index = 0;
var mac_key = row.find("td").eq(0).text();
// Set the row index to the mac key
row.attr('id', mac_key);
row.find("td").eq(index++).attr('id', mac_key+"_key");
row.find("td").eq(index++).attr('id', mac_key+"_mac");
row.find("td").eq(index++).attr('id', mac_key+"_manufacturer");
row.find("td").eq(index++).attr('id', mac_key+"_device_type");
row.find("td").eq(index++).attr('id', mac_key+"_name");
row.find("td").eq(index++).attr('id', mac_key+"_hosts");
row.find("td").eq(index++).attr('id', mac_key+"_arp_total");
row.find("td").eq(index++).attr('id', mac_key+"_since");
row.find("td").eq(index++).attr('id', mac_key+"_breakdown");
row.find("td").eq(index++).attr('id', mac_key+"_throughput");
row.find("td").eq(index++).attr('id', mac_key+"_traffic");
return row;
}
function get_row_key(mac_key) {
var hostInfo = NtopUtils.hostkey2hostInfo(mac_key);
let host_key_lua = hostInfo[0];
var vlan = "";
if (hostInfo[1]) {
host_key_lua += "@" + hostInfo[1];
}
return host_key_lua;
}
function mac_row_update(mac_key, data) {
$("#"+mac_key+'_hosts').html(data.column_hosts);
$("#"+mac_key+'_arp_total').html(data.column_arp_total);
$("#"+mac_key+'_device_type').html(data.column_device_type);
$("#"+mac_key+'_name').html(data.column_name);
$("#"+mac_key+'_since').html(data.column_since);
$("#"+mac_key+'_breakdown').html(data.column_breakdown);
$("#"+mac_key+'_throughput').html(data.column_thpt);
$("#"+mac_key+'_traffic').html(data.column_traffic);
}
// Updating function
function mac_table_update () {
var $dt = $("#table-mac").data("datatable");
var rows = $dt.rows;
let url = "@HTTP_PREFIX@/lua/get_macs_stats.lua?hosts=";
for (var row in rows) {
let mac_key = rows[row][0].id;
let mac_key_lua = get_row_key(mac_key);
url += mac_key_lua + ",";
}
$.ajax({
type: 'GET',
url: url,
cache: false,
success: function(content) {
var data = jQuery.parseJSON(content);
for (var row in rows){
var mac_key = rows[row][0].id;
let mac_key_lua = get_row_key(mac_key);
mac_row_update(mac_key, data[mac_key_lua]);
}
},
error: function(content) {
console.log("error");
}
});
}
// Refresh Interval (10 sec)
var mac_table_interval = window.setInterval(mac_table_update, 10000);
// ---------------- End automatic table update code ------------------------