使用Java从Server获取计算机名称作为主机名

时间:2018-01-11 08:02:45

标签: java servlets server

我有一个要求,我需要显示客户端计算机的IP地址和主机名。我必须仅为此活动使用chrome浏览器。 以下是我尝试的方法。

方法1 - 使用HttpServletRequest

HttpServletRequest request = RequestFilter.getRequest();
String ClientIP = request.getRemoteAddr();
String hostName = request.getRemoteHost();
logger.info("IP of the client:" + ClientIP);
logger.info("Host Name of the client :" + hostName);

使用这种方法request.getRemoteHost()将公共IP作为主机名返回,而不是Coumpter的名称。

方法2 - 使用Inet地址

InetAddress IP = InetAddress.getLocalHost();
String ClientIP = IP.getHostAddress();
String hostName = InetAddress.getLocalHost().getHostName();
logger.info("IP of client:"+ClientIP);
logger.info("Host Name of client:"+hostName);

这种方法为我提供了服务器的IP和主机名详细信息。不是客户。

我试图通过IP使用

获取主机名
InetAddress.getByName(request.getRemoteAddr()).getHostName()

但是,这个也会返回客户端的公共IP,而不是主机名。

我尝试使用Javascript获取主机名,但由于我只使用Chrome浏览器,因此无法使用ActiveXObject

cmd 上运行hostname命令时,我能够获得正确的计算机名称,这是我想要的结果。

请提供一些方法,我可以将计算机名称作为客户端的主机名。请帮助,我被严重困扰。

0 个答案:

没有答案