【问题标题】:Is there any way to find servers present in a local network using java?有没有办法使用java查找本地网络中存在的服务器?
【发布时间】:2018-10-30 09:29:03
【问题描述】:

我想使用 java 查找本地网络中存在的服务器列表。那可能吗?或者在进行网络扫描时有什么方法可以区分服务器和主机?

【问题讨论】:

  • 首先你要回答什么是服务器?根据您的标准,我怎么知道某个程序是服务器?
  • 任何运行服务器操作系统的主机,例如 Ubuntu 服务器操作系统?我想是的,但我不确定。

标签: java networking server network-scan


【解决方案1】:

我不知道“普通主机”和“服务器”之间有明显的区别。我使用的所有系统都作为“普通主机”和“服务器”运行......取决于你的观点。 (而且您当然无法根据它们运行的​​操作系统来区分典型系统。例如,我的笔记本电脑运行 Linux。)

如果(假设)您可以提出一些客观标准来区分这两种系统(基于它们的行为/响应网络请求的方式),那么就可以使用像 nmap 这样的工具来区分它们。另一种选择是使用像OpenVAS 这样的工具,它可以根据各种线索对系统的操作系统进行“有根据的猜测”。

但这实际上取决于您提供一些客观/可衡量的标准来确定系统是否为服务器。


但是 nmap 只是试图猜测主机操作系统,而且大多数时候它都无法猜测。

嗯,是的。您是否期望一个典型的操作系统将此类信息提供给网络上询问的任何人/任何事物?

现在回到 1980 年代......在Morris Worm 被释放到野外之前......人们更加信任。但不是在 2018 年!

【讨论】:

    【解决方案2】:

    最简单的解决方案是从 Java 调用 nmap。这将扫描端口并尝试对计算机正在侦听的端口进行分类。当然,您可以从 Java 中做同样的事情,但不太可能值得付出努力。 https://nmap.org/

    注意:这是网络黑客常用的工具,因此在执行此操作之前,请确保您已获准在网络上运行此工具。

    【讨论】:

    • 是的,但我无法区分普通主机和服务器。
    • “普通”主机和“服务器”之间没有明显的区别。
    • 我已经尝试使用nmap的操作系统检测方法来查看主机是否运行服务器操作系统。但是 nmap 只是尝试猜测主机操作系统,而且大多数时候它都无法猜测。
    • @ViswatejaVengala nmap 有很多选项可以控制扫描的内容。默认情况下它只扫描一些常见的端口。
    猜你喜欢
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    相关资源
    最近更新 更多