是否有用于网络发现的特定协议? 我希望将其编码为现有的Java项目。目前我正在使用端口扫描仪来处理这个案例,但是我想把它换成可以给我更多信息的东西。如果可能的话,我想扫描以发现机器并拉出Ip地址,主机名,MAC地址,网卡制作/型号,操作系统以及我能得到的任何其他内容。
答案 0 :(得分:4)
没有一个协议可以为您完成所有这些。我必须做到这一点,基本上,最好的方法是使用启发式的组合来定位,分析和交叉引用网络节点和拓扑。以下是我使用的数据源:
Here是我在拓扑映射器上工作时挖出的一个学术资源。希望它会有所帮助。祝你好运!
答案 1 :(得分:1)
检查nmap
它能做什么。它是网络扫描仪,可以使用ARP,TCP-SYN和许多其他嗅探技术进行扫描。它还包含不同机器指纹的大型数据库,因此可以猜出给定系统运行的OS /版本。
答案 2 :(得分:0)
查看SNMP协议。它有一种自动发现网络设备的方法。请记住,这有一些安全问题(尤其是旧版本的协议)。
答案 3 :(得分:0)
WBEM(类似于Windows上的WMI)可用于扫描Unix计算机和其他设备。当然,只有安装了WBEM仪器......
WBEM甚至适用于ESX(i)服务器(如果在那里启用)。
否则,您也可以使用SSH以编程方式登录到Unix计算机并发出系统命令以提取所需的信息。
WBEM有一个很好的Java库叫做SBLIM 有许多用于telnet和SSH的Java库