我有一个java应用程序。该应用程序的工作方式类似于获取PC信息(硬件和配置文件详细信息)。因此,我希望在服务器上运行该应用程序时,在服务器上连接哪个系统。怎么可能?我没有这个。给我这个想法。
简单的服务器是父意味着我想通过java编码找到子系统。
答案 0 :(得分:1)
我有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-转发换”) 见Link
创意2:
关于知道连接到服务器的系统类型,我认为如果远程系统允许,JMX可以为您做一些。我从来没有使用它,但我认为你可以做某些监控认为它。
创意3:
我认为检测有关客户端计算机的信息的最佳方法是在该具体客户端计算机上运行应用程序。 小程序。我不确定这个,但如果我记得好的applet在客户端执行,也许你可以找到在你的web-app中放置一个的方法,这样它就可以轻松地检测到有关客户端系统的信息,然后将其转发回应用程序服务器。(正如我所说,我不确定这是否可行)
创意4
查找第三方软件,也许是一种网络服务(某种高级的whois网络服务),只在您发送参数时为您获取信息(例如:IP地址)
更新
此api可能对您有所帮助:jpcap
P.S还可以快速查看java教程的sockets chapter,也可以使用。