我正在将一些扫描仪集成到我们的某个解决方案中,我需要能够判断设备是否:
- 台式计算机(指带有操作系统和图形用户界面的计算机)
- 用作基础设施的服务器
- 移动设备
- 物联网设备
我可以得到的信息类似于以下内容:
os name: winX
vendor: nutanix
os type: windows
services: kerberos port 88 protocol tcp
hostname: mycomputerdummy
fqdn: somevalue
ipv4: ipv4 address
是否有任何已知的算法/直觉可以根据此信息确定设备类型?谢谢
答案1
不存在可以识别世界上所有设备的星球目录。您需要构建自己的目录。
您指出可以从设备获取的数据已经非常好了。一旦您的扫描仪正常工作,请在您的网络上运行它并尝试识别设备。如果设备难以识别,请尝试关闭尽可能多的其他设备。
一旦您掌握了识别设备的方法,就将它们构建到扫描仪中,这样您就可以轻松快速地了解网络的状态。
答案2
首先针对操作系统名称进行扫描。这将提供一些大致的集合。
只需按操作系统对它们进行一次分类,即可大致了解数据库的质量。是否存在大量多样性?那么您应该已经看到了一些模式。Windows 服务器最有可能使用 Windows Server 操作系统。台式机最有可能使用 Windows/MacOS 或 Linux。
如果您的数据库非常同质,我会开始检查扫描仪是否真的可以确定操作系统。除非有某种政策规定每个人都必须使用 Windows 来处理所有事情。
我想说的是,永远不要相信黑匣子。一定要检查你的数据。它与你看到的情况相符吗?如果不符,请检查来源。
然后就从那里开始构建子集。