我想使用Java查找本地网络中存在的服务器列表。那可能吗?还是在进行网络扫描时有什么方法可以将服务器与主机区分开?
答案 0 :(得分:0)
最简单的解决方案是从Java调用nmap
。这将进行端口扫描,并尝试对计算机正在侦听的端口进行分类。当然,您可以从Java中做同样的事情,但这不太值得。 https://nmap.org/
注意:这是网络黑客常用的工具,因此在执行此操作之前,请确保您已批准在网络上运行此工具。
答案 1 :(得分:0)
我不知道“普通主机”和“服务器”之间有明显区别。我使用的所有系统都可以作为“普通主机”和“服务器”……这取决于您的观点。 (而且您当然无法根据运行的操作系统来区分典型系统。例如,我的笔记本电脑运行Linux。)
如果(假设)您可以提出一些客观标准来区分两种系统(基于它们的行为/对网络请求的响应),则可以使用诸如nmap之类的工具来区分它们。另一种选择是使用OpenVAS
之类的工具,该工具可以根据各种线索对系统的操作系统进行“有根据的猜测”。
但这实际上取决于您为确定系统是否为服务器提供一些客观/可衡量的标准。
但是,nmap只是尝试猜测主机操作系统,而且大多数时候它都无法猜测。
是的。您是否希望典型的操作系统将这种信息提供给网络上任何要求的人/任何东西?
现在可以追溯到1980年代……Morris Worm发行到野外之前……人们更加信任。但不是在2018年!