<%# Copyright (C) 2017 Steven Hessing <steven.hessing@gmail.com> This is free software, licensed under the GNU General Public License v3. /usr/lib/lua/luci/view/clients.htm -%> <%- require "nixio.fs" require "os" local last_modified = "<boottime>" local style = true local v local devdump if nixio.fs.access("/var/lib/noddos/DeviceDump.json") then last_modified = os.date("%c", nixio.fs.stat("/var/lib/noddos/DeviceDump.json")['mtime']) io.input("/var/lib/noddos/DeviceDump.json") t = io.read("*all") devdump = luci.jsonc.parse(t) io.input("/var/lib/noddos/DeviceProfiles.json") t = io.read("*all") temp = luci.jsonc.parse(t) devicevalues = {} for i, v in ipairs(temp) do devicevalues[v.DeviceProfileUuid] = v end end -%> <%+header%> <div class="cbi-map" id="cbi-network"> <h2 name="content"><%:Clients%></h2> <div class="cbi-map-descr"><%:The following clients have been discovered on the network. The last discovery was completed at %><%=last_modified%></div> <fieldset class="cbi-section"> <legend><%:Recognized Clients%></legend> <div class="cbi-section-node"> <div class="table cbi-section-table"> <div class="tr cbi-section-table-titles"> <div class="th cbi-section-table-cell"><%:Hostname%></div> <div class="th cbi-section-table-cell"><%:IPv4%></div> <div class="th cbi-section-table-cell"><%:MAC%></div> <div class="th cbi-section-table-cell"><%:Manufacturer%></div> <div class="th cbi-section-table-cell"><%:Model%></div> <div class="th cbi-section-table-cell"><%:Class%></div> </div> <% for i,v in ipairs(devdump) do if v.DeviceProfileUuid ~= "" then %> <div class="tr cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>"> <div class="td cbi-value-field"><%=v.Hostname%></div> <div class="td cbi-value-field"><%=v.Ipv4Address%></div> <div class="td cbi-value-field"><a href="/cgi-bin/clientdetails?mac=<%=v.MacAddress%>"><%=v.MacAddress%></a></div> <div class="td cbi-value-field"><%=devicevalues[v.DeviceProfileUuid].Manufacturer%></div> <div class="td cbi-value-field"><%=devicevalues[v.DeviceProfileUuid].Model%></div> <div class="td cbi-value-field"><%=devicevalues[v.DeviceProfileUuid].ThingClass%></div> </div> <% style=false end end %> </div> </div> </fieldset> <br /> <fieldset class="cbi-section"> <legend><%:Unrecognized Clients%></legend> <div class="cbi-section-node"> <div class="table cbi-section-table"> <div class="tr cbi-section-table-titles"> <div class="th cbi-section-table-cell"><%:Hostname%></div> <div class="th cbi-section-table-cell"><%:IPv4%></div> <div class="th cbi-section-table-cell"><%:MAC%></div> <div class="th cbi-section-table-cell"><%:Manufacturer%></div> <div class="th cbi-section-table-cell"><%:Model%></div> <div class="th cbi-section-table-cell"><%:DhcpVendor%></div> <div class="th cbi-section-table-cell"><%:DhcpHostname%></div> </div> <% for i,v in ipairs(devdump) do if v.DeviceProfileUuid == "" then %> <div class="tr cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>"> <div class="td cbi-value-field"><%=v.Hostname%></div> <div class="td cbi-value-field"><%=v.Ipv4Address%></div> <div class="td cbi-value-field"><a href="/cgi-bin/clientdetails?mac=<%=v.MacAddress%>"><%=v.MacAddress%></a></div> <div class="td cbi-value-field"><%=v.SsdpManufacturer%></div> <div class="td cbi-value-field"><%=v.SsdpModelName%></div> <div class="td cbi-value-field"><%=v.DhcpVendor1%></div> <div class="td cbi-value-field"><%=v.DhcpHostname%></div> </div> <% style=false end end %> </div> </div> </fieldset> </div> <%+footer%>