|
|
|
@ -19,45 +19,42 @@ $smarty->assign("scripts",'changetext.js'); |
|
|
|
|
include("header.php"); |
|
|
|
|
|
|
|
|
|
// subnet |
|
|
|
|
$query = "SELECT |
|
|
|
|
s.subnet_address, |
|
|
|
|
s.subnet_mask, |
|
|
|
|
s.subnet_dhcp_start, |
|
|
|
|
s.subnet_dhcp_end, |
|
|
|
|
s.subnet_info, |
|
|
|
|
s.protocol_version, |
|
|
|
|
$sql = "SELECT |
|
|
|
|
s.subnet_id AS id, |
|
|
|
|
s.subnet_address AS address, |
|
|
|
|
s.subnet_mask AS mask, |
|
|
|
|
s.subnet_dhcp_start AS dhcp_start, |
|
|
|
|
s.subnet_dhcp_end AS dhcp_end, |
|
|
|
|
s.subnet_info AS info, |
|
|
|
|
s.protocol_version AS proto_vers, |
|
|
|
|
s.ntp_server, |
|
|
|
|
COUNT(node.subnet_id) AS node_counter |
|
|
|
|
FROM |
|
|
|
|
subnet AS s LEFT JOIN node USING (subnet_id) |
|
|
|
|
WHERE |
|
|
|
|
s.subnet_id=" . $subnet_id . " |
|
|
|
|
s.subnet_id=? |
|
|
|
|
GROUP BY |
|
|
|
|
s.subnet_id"; |
|
|
|
|
$sth = $dbh->prepare($sql); |
|
|
|
|
$sth->execute([$subnet_id]); |
|
|
|
|
|
|
|
|
|
$subnet = $db->db_select($query); |
|
|
|
|
$subnet = $sth->fetch(PDO::FETCH_OBJ); |
|
|
|
|
|
|
|
|
|
$smarty->assign("subnet", $subnet); |
|
|
|
|
|
|
|
|
|
// set needed variables |
|
|
|
|
$subnet_address = $subnet[0]['subnet_address']; |
|
|
|
|
$subnet_mask = $subnet[0]['subnet_mask']; |
|
|
|
|
$subnet_dhcpstart = $subnet[0]['subnet_dhcp_start']; |
|
|
|
|
$subnet_dhcpend = $subnet[0]['subnet_dhcp_end']; |
|
|
|
|
$subnet_proto_vers = $subnet[0]['protocol_version']; |
|
|
|
|
$subnet_ntp_server = $subnet[0]['ntp_server']; |
|
|
|
|
$subnet_address = $subnet->address; |
|
|
|
|
$subnet_mask = $subnet->mask; |
|
|
|
|
$subnet_dhcpstart = $subnet->dhcp_start; |
|
|
|
|
$subnet_dhcpend = $subnet->dhcp_end; |
|
|
|
|
$subnet_proto_vers = $subnet->protocol_version; |
|
|
|
|
$subnet_ntp_server = $subnet->ntp_server; |
|
|
|
|
|
|
|
|
|
// set counters |
|
|
|
|
$host_counter = pow(2,(32-$subnet_mask)); |
|
|
|
|
$node_counter = $subnet[0]['node_counter']; |
|
|
|
|
$node_counter = $subnet->node_counter; |
|
|
|
|
$subnet_usedpercentage = round((($node_counter/($host_counter-2))*100), 1); |
|
|
|
|
|
|
|
|
|
$smarty->assign("subnet_id", $subnet_id); |
|
|
|
|
$smarty->assign("subnet_address", $subnet_address); |
|
|
|
|
$smarty->assign("subnet_mask", $subnet_mask); |
|
|
|
|
$smarty->assign("subnet_dhcpstart", $subnet_dhcpstart); |
|
|
|
|
$smarty->assign("subnet_dhcpend", $subnet_dhcpend); |
|
|
|
|
$smarty->assign("subnet_info", nl2br($subnet[0]['subnet_info'])); |
|
|
|
|
$smarty->assign("subnet_proto_vers", $subnet_proto_vers); |
|
|
|
|
$smarty->assign("subnet_ntp_server", $subnet_ntp_server); |
|
|
|
|
$smarty->assign("node_counter", $node_counter); |
|
|
|
|
$smarty->assign("subnet_usedpercentage", $subnet_usedpercentage); |
|
|
|
|
$smarty->assign("config_color_unused", $config_color_unused); |
|
|
|
@ -67,14 +64,14 @@ $smarty->assign("free_counter", (($host_counter-2)-$node_counter)); |
|
|
|
|
// subnet |
|
|
|
|
|
|
|
|
|
// split up the range |
|
|
|
|
$iprange = explode('.', $subnet_address); |
|
|
|
|
$iprange = explode('.', $subnet->address); |
|
|
|
|
$iprange1 = $iprange[0]; |
|
|
|
|
$iprange2 = $iprange[1]; |
|
|
|
|
$iprange3 = $iprange[2]; |
|
|
|
|
$iprange4 = $iprange[3]; |
|
|
|
|
|
|
|
|
|
// create empty subnet-array |
|
|
|
|
$subnet = array(); |
|
|
|
|
$subnetdata = array(); |
|
|
|
|
|
|
|
|
|
// determine range (Class A/B/C) |
|
|
|
|
if ($subnet_mask >= 24) { |
|
|
|
@ -85,7 +82,7 @@ if ($subnet_mask>=24) { |
|
|
|
|
$ip = $iprange1 . '.' . $iprange2 . '.' . $iprange3 . '.' . ($iprange4+$i); |
|
|
|
|
|
|
|
|
|
// fill subnet-array |
|
|
|
|
$subnet[$ip] = array(); |
|
|
|
|
$subnetdata[$ip] = array(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// calculate broadcast address |
|
|
|
@ -121,7 +118,7 @@ if ($subnet_mask>=24) { |
|
|
|
|
$ip = $iprange1 . '.' . $iprange2 . '.' . $page2 . '.' . $i; |
|
|
|
|
|
|
|
|
|
// fill subnet-array |
|
|
|
|
$subnet[$ip] = array(); |
|
|
|
|
$subnetdata[$ip] = array(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// calculate broadcast address |
|
|
|
@ -173,7 +170,7 @@ if ($subnet_mask>=24) { |
|
|
|
|
$ip = $iprange1 . '.' . $page2 . '.' . $page3 . '.' . $i; |
|
|
|
|
|
|
|
|
|
// fill subnet-array |
|
|
|
|
$subnet[$ip] = array(); |
|
|
|
|
$subnetdata[$ip] = array(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// calculate broadcast address |
|
|
|
@ -238,7 +235,7 @@ if ($subnet_mask>=24) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// get nodes for this subnetview and implement the values into the array |
|
|
|
|
$query = "SELECT |
|
|
|
|
$sql = "SELECT |
|
|
|
|
asset.asset_name, |
|
|
|
|
assetclassgroup.assetclassgroup_color, |
|
|
|
|
node.node_id, |
|
|
|
@ -249,20 +246,24 @@ $query = "SELECT |
|
|
|
|
assetclassgroup, |
|
|
|
|
node |
|
|
|
|
WHERE |
|
|
|
|
node.node_ip IN ('".implode("','",array_keys($subnet))."') |
|
|
|
|
AND node.subnet_id='$subnet_id' |
|
|
|
|
node.node_ip IN ('".implode("','",array_keys($subnetdata))."') |
|
|
|
|
AND node.subnet_id=? |
|
|
|
|
AND asset.asset_id=node.asset_id |
|
|
|
|
AND assetclass.assetclass_id=asset.assetclass_id |
|
|
|
|
AND assetclassgroup.assetclassgroup_id=assetclass.assetclassgroup_id"; |
|
|
|
|
|
|
|
|
|
$nodes = $db->db_select($query); |
|
|
|
|
$sth = $dbh->prepare($sql); |
|
|
|
|
$sth->execute([$subnet_id]); |
|
|
|
|
$smarty->assign("locations", $sth->fetchAll()); |
|
|
|
|
|
|
|
|
|
$nodes = $sth->fetchAll(); |
|
|
|
|
|
|
|
|
|
$node_counter = count($nodes); |
|
|
|
|
if ($node_counter > 0) { |
|
|
|
|
// get objects |
|
|
|
|
foreach ($nodes AS $node) { |
|
|
|
|
// add node-values to ip in subnet-array |
|
|
|
|
$subnet[$node['node_ip']] = $node; |
|
|
|
|
$subnetdata[$node['node_ip']] = $node; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -270,13 +271,13 @@ if ($node_counter>0) { |
|
|
|
|
// check for subnet address |
|
|
|
|
if (array_key_exists($subnet_address, $subnet)) { |
|
|
|
|
// replace |
|
|
|
|
$subnet[$subnet_address] = array("subnet_address"); |
|
|
|
|
$subnetdata[$subnet_address] = array("subnet_address"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// check for broadcast address |
|
|
|
|
if (array_key_exists($broadcast_address, $subnet)) { |
|
|
|
|
// replace |
|
|
|
|
$subnet[$broadcast_address] = array("broadcast_address"); |
|
|
|
|
$subnetdata[$broadcast_address] = array("broadcast_address"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$dhcpstart = 0; |
|
|
|
@ -289,13 +290,13 @@ if ($subnet_dhcpstart && $subnet_dhcpend) { |
|
|
|
|
// start counter |
|
|
|
|
// $i=1; |
|
|
|
|
// loop subnet-array |
|
|
|
|
foreach ($subnet AS $node_ip => $node) { |
|
|
|
|
foreach ($subnetdata AS $node_ip => $node) { |
|
|
|
|
|
|
|
|
|
// make new line? |
|
|
|
|
// if(($i%$_SESSION['suser_imagecount']==0 && $i!=$nodes_displayed) ? $tr="</tr><tr>" : $tr=""); |
|
|
|
|
|
|
|
|
|
// check if node-ip in DHCP-area |
|
|
|
|
$subnet[$node_ip]["dynamic"] = false; |
|
|
|
|
$subnetdata[$node_ip]["dynamic"] = false; |
|
|
|
|
if ($dhcpstart > 0) { |
|
|
|
|
$ipval = ip2long($node_ip); |
|
|
|
|
if (($ipval >= $dhcpstart) and ($ipval <= $dhcpend)) { |
|
|
|
@ -306,28 +307,28 @@ foreach ($subnet AS $node_ip => $node) { |
|
|
|
|
// check node |
|
|
|
|
if (empty($node)) { |
|
|
|
|
// empty node to tpl |
|
|
|
|
$subnet[$node_ip]["url"] = 'assigniptonode.php?subnet_id=' . $subnet_id . '&node_ip='. $node_ip; |
|
|
|
|
$subnet[$node_ip]["remotetext"] = $node_ip; |
|
|
|
|
if ($subnet[$node_ip]["dynamic"]) { |
|
|
|
|
$subnet[$node_ip]["assetclassgroup_color"] = $config_color_dynamic; |
|
|
|
|
$subnetdata[$node_ip]["url"] = 'assigniptonode.php?subnet_id=' . $subnet_id . '&node_ip='. $node_ip; |
|
|
|
|
$subnetdata[$node_ip]["remotetext"] = $node_ip; |
|
|
|
|
if ($subnetdata[$node_ip]["dynamic"]) { |
|
|
|
|
$subnetdata[$node_ip]["assetclassgroup_color"] = $config_color_dynamic; |
|
|
|
|
} else { |
|
|
|
|
$subnet[$node_ip]["assetclassgroup_color"] = $config_color_unused; |
|
|
|
|
$subnetdata[$node_ip]["assetclassgroup_color"] = $config_color_unused; |
|
|
|
|
} |
|
|
|
|
} else if (array_key_exists(0, $node) && $node[0]=="subnet_address") { |
|
|
|
|
// subnet address to tpl |
|
|
|
|
$subnet[$node_ip]["url"] = ""; |
|
|
|
|
$subnet[$node_ip]["remotetext"] = $node_ip . ' ' . $lang['lang_subnet_subnetaddress']; |
|
|
|
|
$subnet[$node_ip]["assetclassgroup_color"] = $config_color_blocked; |
|
|
|
|
$subnetdata[$node_ip]["url"] = ""; |
|
|
|
|
$subnetdata[$node_ip]["remotetext"] = $node_ip . ' ' . $lang['lang_subnet_subnetaddress']; |
|
|
|
|
$subnetdata[$node_ip]["assetclassgroup_color"] = $config_color_blocked; |
|
|
|
|
} else if (array_key_exists(0, $node) && $node[0]=="broadcast_address") { |
|
|
|
|
// broadcast address to tpl |
|
|
|
|
$subnet[$node_ip]["url"] = ""; |
|
|
|
|
$subnet[$node_ip]["remotetext"] = $node_ip . ' ' . $lang['lang_subnet_broadcastaddress']; |
|
|
|
|
$subnet[$node_ip]["assetclassgroup_color"] = $config_color_blocked; |
|
|
|
|
$subnetdata[$node_ip]["url"] = ""; |
|
|
|
|
$subnetdata[$node_ip]["remotetext"] = $node_ip . ' ' . $lang['lang_subnet_broadcastaddress']; |
|
|
|
|
$subnetdata[$node_ip]["assetclassgroup_color"] = $config_color_blocked; |
|
|
|
|
} else { |
|
|
|
|
// node to tpl |
|
|
|
|
$subnet[$node_ip]["url"] = 'nodeview.php?node_id=' . $node['node_id']; |
|
|
|
|
$subnet[$node_ip]["remotetext"] = $node_ip . ' ' . $node['asset_name']; |
|
|
|
|
$subnet[$node_ip]["assetclassgroup_color"] = $node['assetclassgroup_color']; |
|
|
|
|
$subnetdata[$node_ip]["url"] = 'nodeview.php?node_id=' . $node['node_id']; |
|
|
|
|
$subnetdata[$node_ip]["remotetext"] = $node_ip . ' ' . $node['asset_name']; |
|
|
|
|
$subnetdata[$node_ip]["assetclassgroup_color"] = $node['assetclassgroup_color']; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// update counter |
|
|
|
@ -335,43 +336,30 @@ foreach ($subnet AS $node_ip => $node) { |
|
|
|
|
|
|
|
|
|
} // foreach |
|
|
|
|
|
|
|
|
|
$smarty->assign("subnet", $subnet); |
|
|
|
|
$smarty->assign("subnetdata", $subnetdata); |
|
|
|
|
$smarty->assign("imagewrap", $_SESSION['suser_imagecount']); |
|
|
|
|
|
|
|
|
|
// vlan |
|
|
|
|
$query = "SELECT |
|
|
|
|
vlan.vlan_id AS vlan_id, |
|
|
|
|
vlan.vlan_name AS vlan_name, |
|
|
|
|
vlan.vlan_number AS vlan_number |
|
|
|
|
FROM |
|
|
|
|
subnetvlan, |
|
|
|
|
vlan |
|
|
|
|
WHERE |
|
|
|
|
subnetvlan.subnet_id=" . $subnet_id . " |
|
|
|
|
AND vlan.vlan_id=subnetvlan.vlan_id |
|
|
|
|
ORDER BY |
|
|
|
|
vlan.vlan_name"; |
|
|
|
|
|
|
|
|
|
// run query |
|
|
|
|
$vlans = $db->db_select($query); |
|
|
|
|
$smarty->assign("vlans", $vlans); |
|
|
|
|
|
|
|
|
|
// location |
|
|
|
|
$query = "SELECT |
|
|
|
|
l.location_id, |
|
|
|
|
l.location_name |
|
|
|
|
FROM |
|
|
|
|
location AS l LEFT JOIN subnetlocation AS s USING (location_id) |
|
|
|
|
WHERE |
|
|
|
|
s.subnet_id=". $subnet_id . " |
|
|
|
|
ORDER BY |
|
|
|
|
l.location_name"; |
|
|
|
|
|
|
|
|
|
$locations = $db->db_select($query); |
|
|
|
|
$smarty->assign("locations", $locations); |
|
|
|
|
|
|
|
|
|
// assetclassgroup |
|
|
|
|
$query = "SELECT |
|
|
|
|
// vlans |
|
|
|
|
$sql = "SELECT v.vlan_id AS id, v.vlan_name AS name, |
|
|
|
|
v.vlan_number AS number |
|
|
|
|
FROM subnetvlan AS s JOIN vlan AS v USING (vlan_id) |
|
|
|
|
WHERE s.subnet_id=? |
|
|
|
|
ORDER BY v.vlan_name"; |
|
|
|
|
$sth = $dbh->prepare($sql); |
|
|
|
|
$sth->execute([$subnet_id]); |
|
|
|
|
$smarty->assign("vlans", $sth->fetchAll()); |
|
|
|
|
|
|
|
|
|
// locations |
|
|
|
|
$sql = "SELECT l.location_id, l.location_name |
|
|
|
|
FROM location AS l LEFT JOIN subnetlocation AS s USING (location_id) |
|
|
|
|
WHERE s.subnet_id=? |
|
|
|
|
ORDER BY l.location_name"; |
|
|
|
|
$sth = $dbh->prepare($sql); |
|
|
|
|
$sth->execute([$subnet_id]); |
|
|
|
|
$smarty->assign("locations", $sth->fetchAll()); |
|
|
|
|
|
|
|
|
|
// assetclassgroups |
|
|
|
|
$sql = "SELECT |
|
|
|
|
assetclassgroup_id AS id, |
|
|
|
|
assetclassgroup_name AS name, |
|
|
|
|
assetclassgroup_color AS color, |
|
|
|
@ -381,13 +369,12 @@ $query = "SELECT |
|
|
|
|
LEFT JOIN asset USING (asset_id) |
|
|
|
|
LEFT JOIN assetclass USING (assetclass_id) |
|
|
|
|
LEFT JOIN assetclassgroup USING (assetclassgroup_id) |
|
|
|
|
WHERE subnet_id=" . $subnet_id . " |
|
|
|
|
WHERE subnet_id=? |
|
|
|
|
GROUP BY assetclass_id |
|
|
|
|
ORDER BY counter DESC"; |
|
|
|
|
|
|
|
|
|
// run query |
|
|
|
|
$assetclassgroups = $db->db_select($query); |
|
|
|
|
$smarty->assign("assetclassgroups", $assetclassgroups); |
|
|
|
|
$sth = $dbh->prepare($sql); |
|
|
|
|
$sth->execute([$subnet_id]); |
|
|
|
|
$smarty->assign("assetclassgroups", $sth->fetchAll()); |
|
|
|
|
|
|
|
|
|
$smarty->display("subnetview.tpl"); |
|
|
|
|
|
|
|
|
|