Java 以编程方式进行网络发现

Java 以编程方式进行网络发现,java,network-programming,Java,Network Programming,是否有用于网络发现的特定协议? 我希望将其编码到现有的java项目中。目前我正在使用端口扫描器来处理这个案例,但我希望用它来交换一些能给我更多信息的东西。如果可能的话,我想扫描以发现机器,并提取Ip地址、主机名、MAC地址、NIC品牌/型号、操作系统以及我能获得的任何其他信息。查看协议。它有一种在网络上自动发现设备的方法。请记住,此协议存在一些安全问题(尤其是较旧版本的协议)。请查看该协议。它有一种在网络上自动发现设备的方法。请记住,这有一些安全问题(尤其是协议的旧版本)。没有一个协议可以为您完

是否有用于网络发现的特定协议?

我希望将其编码到现有的java项目中。目前我正在使用端口扫描器来处理这个案例,但我希望用它来交换一些能给我更多信息的东西。如果可能的话,我想扫描以发现机器,并提取Ip地址、主机名、MAC地址、NIC品牌/型号、操作系统以及我能获得的任何其他信息。

查看协议。它有一种在网络上自动发现设备的方法。请记住,此协议存在一些安全问题(尤其是较旧版本的协议)。

请查看该协议。它有一种在网络上自动发现设备的方法。请记住,这有一些安全问题(尤其是协议的旧版本)。

没有一个协议可以为您完成所有这些。我必须做到这一点,基本上,最好的方法是使用启发式组合来定位、分析和交叉参考网络节点和拓扑。以下是我使用的数据源:

  • Traceroute允许您识别网络中的边缘设备和路由器
  • 端口扫描程序允许您识别每个节点上运行的服务
  • SNMP允许您检测设备的类型,以及设备的所有网络接口、其他IP地址、连接到交换机上每个端口的设备的IP、路由表、进程表、网络配置等。。。这是最好的数据源,但要求节点运行snmp服务器(默认情况下安装在windows和大多数linux发行版上)并具有凭据
  • WMI对于windows主机,将提供与SNMP大致相同的信息

这是我在使用拓扑映射器时挖掘的一个学术资源。希望这会有所帮助。祝你好运

没有一个协议可以为您完成所有这些。我必须做到这一点,基本上,最好的方法是使用启发式组合来定位、分析和交叉参考网络节点和拓扑。以下是我使用的数据源:

  • Traceroute允许您识别网络中的边缘设备和路由器
  • 端口扫描程序允许您识别每个节点上运行的服务
  • SNMP允许您检测设备的类型,以及设备的所有网络接口、其他IP地址、连接到交换机上每个端口的设备的IP、路由表、进程表、网络配置等。。。这是最好的数据源,但要求节点运行snmp服务器(默认情况下安装在windows和大多数linux发行版上)并具有凭据
  • WMI对于windows主机,将提供与SNMP大致相同的信息

这是我在使用拓扑映射器时挖掘的一个学术资源。希望这会有所帮助。祝你好运

检查
nmap
以了解其功能。它是网络扫描仪,可以使用ARP、TCP-SYN和许多其他嗅探技术进行扫描。它还包含不同机器指纹的大型数据库,因此它可以猜测给定系统运行的操作系统/版本。

检查
nmap
。它是网络扫描仪,可以使用ARP、TCP-SYN和许多其他嗅探技术进行扫描。它还包含不同计算机指纹的大型数据库,因此可以猜测给定系统运行的操作系统/版本。

WBEM(类似于Windows上的WMI)可用于扫描Unix计算机和其他设备。当然,只有在安装了WBEM仪器的情况下

如果在ESX(i)服务器上启用了WBEM,它甚至可以工作

否则,您也可以使用SSH以编程方式登录到Unix计算机,并发出系统命令以提取所需的信息

WBEM有一个很好的Java库,名为 有许多用于telnet和SSH的Java库

WBEM(类似于Windows上的WMI)可用于扫描Unix计算机和其他设备。当然,只有在安装了WBEM仪器的情况下

如果在ESX(i)服务器上启用了WBEM,它甚至可以工作

否则,您也可以使用SSH以编程方式登录到Unix计算机,并发出系统命令以提取所需的信息

WBEM有一个很好的Java库,名为
有很多用于telnet和SSH的Java库

网络发现什么?主机连接到哪些机器?其他运行特定服务器程序的机器?你能更具体一点吗?用拓扑图?这将证明是一个非常有趣的任务…网络发现什么?主机连接到哪些机器?其他运行特定服务器程序的机器?你能更具体一点吗?用拓扑图?这将证明是一项非常有趣的任务……这当然是难题的一部分。这当然是难题的一部分。是的,我熟悉nmap。我希望获得更多信息的功能之一是通过扫描确定MAC地址。关于从哪里开始有什么想法吗?@Nick我认为确定MAC的最简单方法是进行ARP(地址解析协议)扫描(检查
arping
实用程序),或者简单地尝试
ping
地址并检查系统的ARP表。请记住,您只能在本地网络(或仅1个网段)中获取主机的MAC地址。是的,我熟悉nmap。我希望获得更多信息的功能之一是通过扫描确定MAC地址。关于从哪里开始有什么想法吗?@Nick我认为确定MAC的最简单方法是进行ARP(地址解析协议)扫描(检查
arping
实用程序),或者简单地尝试
ping
地址并检查系统的ARP表。请记住,您只能在本地网络(或仅1个网段)中获取主机的MAC地址。