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

如何通过java编码找到服务器上连接的系统?,java,system,pc,Java,System,Pc,我有一个java应用程序。该应用程序的工作原理类似于获取PC信息(硬件和配置文件详细信息)。所以我想知道当应用程序在服务器上运行时,服务器上连接了哪个系统。怎么可能呢?我不知道这件事。告诉我这个主意 简单地说,服务器是父系统意味着我希望通过java编码找到子系统 我有3个小主意,也许其中一些能给你启发或给你一些建议 想法1: 检测并记录IP地址以及用户连接到应用程序的时间 我认为这样应该可以让您获得IP: public void service(HttpServletRequest req, H

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


简单地说,服务器是父系统意味着我希望通过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必须位于标头上的某个位置):

request.getHeader(“x-forwarded-for”) 看

想法2:

关于了解连接到服务器的系统类型,我认为如果远程系统允许,可以为您做一些。我从来没用过,但我想你可以用它来做一些事情

想法3:

我认为检测客户机信息的最好方法是让应用程序在具体的客户机上运行。 小程序。我不确定这一点,但如果我记得好的小程序在客户端执行,也许你可以找到一种方法,将它放在你的web应用程序中,这样它就可以轻松地检测到有关客户端系统的信息,然后将其转发回应用程序服务器。(正如我所说,我不确定这是否可行)

创意4

查找第三方软件,可能是一个web服务(某种高级whois web服务),当您只发送一个参数(例如:Ip地址)时,它可以为您获取信息

更新

此api可能会帮助您:


另外,快速浏览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必须位于标头上的某个位置):

request.getHeader(“x-forwarded-for”) 看

想法2:

关于了解连接到服务器的系统类型,我认为如果远程系统允许,可以为您做一些。我从来没用过,但我想你可以用它来做一些事情

想法3:

我认为检测客户机信息的最好方法是让应用程序在具体的客户机上运行。 小程序。我不确定这一点,但如果我记得好的小程序在客户端执行,也许你可以找到一种方法,将它放在你的web应用程序中,这样它就可以轻松地检测到有关客户端系统的信息,然后将其转发回应用程序服务器。(正如我所说,我不确定这是否可行)

创意4

查找第三方软件,可能是一个web服务(某种高级whois web服务),当您只发送一个参数(例如:Ip地址)时,它可以为您获取信息

更新

此api可能会帮助您:


另外,快速查看java教程的详细信息也会变得很方便。

如果我理解您的意思,您想通过java显示netstat类型信息吗?Java不直接支持这一点,您必须通过jni执行本机代码,或者执行外部进程,每个平台都可能有不同的命令来执行此操作。是否可以通过java获取服务器上连接的端口?不,一般来说,java无法从其他正在运行的进程获取信息。因此,如果我理解您的意思,您想通过java显示netstat类型信息?Java不直接支持这一点,您必须通过jni执行本机代码,或者执行外部进程,每个平台都可能有不同的命令来执行此操作。是否可以通过java获取服务器上连接的端口?不,一般来说,java无法从其他正在运行的进程获取信息。还有其他方法吗?所有PC均与单服务器系统连接。可以通过局域网连接吗?我完全糊涂了。啊哈,好吧,我想现在我更了解你的问题了。关于检索信息的一些java限制的一些评论。你可以试着在附近找个工作。看看jpcap,它是一个用于网络的JavaAPI。也许很方便。我会更新上面答案中的链接。还有其他方法吗?所有PC均与单服务器系统连接。可以通过局域网连接吗?我完全糊涂了。啊哈,好吧,我想现在我更了解你的问题了。关于检索信息的一些java限制的一些评论。你可以试着在附近找个工作。看看jpcap,它是一个用于网络的JavaAPI。也许很方便。我会更新我上面答案中的链接。