java - 如何通过java编码找到服务器上连接的系统?

标签 java

我有一个java应用程序。该应用程序的工作原理类似于获取电脑信息(硬件和配置文件详细信息)。所以我想知道当该应用程序在服务器上运行时,哪个系统连接到服务器上。怎么可能呢?我没有关于这个的。给我这个想法。

简单来说,服务器是父系统意味着我想通过java编码找到子系统。

最佳答案

我有 3 个小想法,也许其中一些可以启发你或给你一些提示。

想法1:

检测并记录 IP 地址以及用户连接到您的应用程序的时间。

我认为这样的东西应该可以让你获得IP:

public void service(HttpServletRequest req, HttpServletResponse res) 
 throws IOException {
   String ip = req.getRemoteAddr();
   Date date = new Date();
   MyLogger.log(ip,date);
  }

如果 req.getRemoteAddr() 不起作用尝试(客户端 IP 必须位于 header 的某个位置):

request.getHeader("x-forwarded-for") See Link

想法2:

关于了解连接到服务器的系统类型,我认为JMX如果远程系统允许的话,可以为您做一些事情。我从未使用过它,但我认为你可以用它进行某些监控思考。

想法3:

我认为检测有关客户端计算机的信息的最佳方法是在该具体客户端计算机上运行应用程序。 一个小程序。我对此不确定,但如果我记得好的小程序在客户端执行,也许您可​​以找到一种方法将一个小程序放入您的网络应用程序中,以便它可以轻松检测有关客户端系统的信息,然后将其转发回应用程序服务器。(正如我所说,我不确定这是否可能)

想法4

查找第三方软件,也许是一个网络服务(某种高级 whois 网络服务),当您仅发送参数(例如:IP 地址)时,它会为您获取信息

更新

这个 API 可能对您有帮助:jpcap

P.S 还可以快速查看 sockets chapter的java教程,也能变得得心应手。

关于java - 如何通过java编码找到服务器上连接的系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5672859/

相关文章:

java - Java 和 Python 可以共存于同一个应用程序中吗?

java - Spring Batch条件流不执行else部分

java - MyBatis中foreach如何遍历HashMap?

java - 如何将crc16 C实现转换为java?

java - Java中的噪音和静音清除

java - Log4j 1.x Sentry 附加器 : suppress warnings from specific sources for one appender

java - 如何绘制/重绘/动画 (MVC)

java - 仅适用于 Android 上的 RSA 加密中的 IllegalBlockSizeException

java - 从方法实例化类变量 - Java

java - JAXB Soap 服务运行时错误(未找到 XPath 方法)