Improved network discovery

This commit is contained in:
Luca Deri 2018-04-04 23:14:25 +02:00
parent dac87bb89f
commit 5d455fdf73

View file

@ -486,6 +486,7 @@ local function findDevice(ip, mac, manufacturer, _mdns, ssdp_str, ssdp_entries,
local _snmpName = string.lower(snmpName)
local _snmpDescr
--io.write("IP "..ip.." has descr (".. _snmpName ..")\n")
if(snmpDescr == nil) then
-- io.write("IP "..ip.." has empty descr (".. _snmpName ..")\n")
_snmpDescr = _snmpName
@ -499,7 +500,7 @@ local function findDevice(ip, mac, manufacturer, _mdns, ssdp_str, ssdp_entries,
elseif(string.contains(_snmpDescr, "curve")) then
return 'networking', discover.asset_icons['networking']..' ('..snmpName..')', snmpName
else
return 'workstation', discover.asset_icons['workstation']..' ('..snmpName..')', snmpName
-- return 'unknown', snmpName, nil
end
elseif(string.contains(manufacturer, "VMware")
or string.contains(manufacturer, "QEMU")
@ -523,13 +524,16 @@ local function findDevice(ip, mac, manufacturer, _mdns, ssdp_str, ssdp_entries,
local ret = '</i> '..discover.asset_icons['workstation']..' ' .. discover.apple_icon
local what = 'workstation'
if(((snmpName ~= nil) and string.contains(snmpName, "capsule"))
if(((snmpName ~= nil) and string.contains(snmpName, "capsul"))
or string.contains(symName, "capsule") or string.contains(hostname, "capsule")) then
ret = '</i> '..discover.asset_icons['nas'], nil
what = 'nas'
elseif(string.contains(symName, "book") or string.contains(hostname, "book")) then
ret = '</i> '..discover.asset_icons['laptop']..' ' .. discover.apple_icon, nil
what = 'laptop'
elseif(string.contains(symName, "airport")) then
ret = '</i> '..discover.asset_icons['wifi']..' ' .. discover.apple_icon, nil
what = 'laptop'
end
if(snmpName ~= nil) then ret = ret .. " ["..snmpName.."]" end
@ -623,17 +627,18 @@ local function findDevice(ip, mac, manufacturer, _mdns, ssdp_str, ssdp_entries,
return 'workstation', discover.asset_icons['workstation']..' (Linux)', nil
elseif(string.contains(server, "Apache")) then
return 'workstation', discover.asset_icons['workstation'], nil
elseif(string.contains(server, "GoAhead-Webs")) then
elseif(string.contains(server, "GoAhead")) then
return 'workstation', discover.asset_icons['workstation'], nil
elseif(string.contains(server, "Microsoft")) then
interface.setMacOperatingSystem(mac, 2) -- 2 = windows
return 'workstation', discover.asset_icons['workstation']..' (Windows)', nil
elseif(string.contains(server, "Virata-EmWeb") or string.contains(server, "HP-ChaiSOE") -- Usually LaserJet
or string.contains(server, "EWS-NIC5") -- Xerox
elseif(string.contains(server, "Virata%-EmWeb") or string.contains(server, "HP%-ChaiSOE") -- Usually LaserJet
or string.contains(server, "EWS%-NIC5") -- Xerox
or string.contains(server, "RomPager") -- Xerox
) then
return 'printer', discover.asset_icons['printer'], nil
else
return 'workstation', discover.asset_icons['workstation'], nil -- default
return 'workstation', discover.asset_icons['workstation'], server -- default
end
end