servlets - 在基于 servlet 的 Web 应用程序中获取 LAN 客户端计算机名称

标签 servlets client-side lan computer-name

我有 Spring MVC 应用程序,它在 LAN 中运行。其中客户端计算机的 IP 地址会不时发生变化。因此我想获取客户端计算机名称(它们的计算机名称是固定的),因为我想获取客户端计算机的详细信息而不创建登录。

是否可以获取客户端计算机的名称?如果可以的话怎么办?? 或者有没有其他方法来获取用户详细信息

编辑: 到目前为止我尝试过的代码

在 HttpServlet 中

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { 
    String hostname = request.getRemoteUser(); //this gives null
    String hostname = request.getRemoteHost(); //This gives host machine name
}

编辑:回复@Eugeny Loy 在 web.xml 中

<init-param>
    <param-name>jcifs.smb.client.username</param-name>
    <param-value>username</param-value>

</init-param>

在 serverlet 类中

String username = config.getInitParameter("username");//This gives client IP address

最佳答案

我找到了获取客户端计算机名称的方法。

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { 

    Logger.getLogger(this.getClass()).warning("Inside Confirm Servlet");  
    response.setContentType("text/html");

    String hostname = request.getRemoteHost(); // hostname
    System.out.println("hostname"+hostname);

    String computerName = null;
    String remoteAddress = request.getRemoteAddr();
    System.out.println("remoteAddress: " + remoteAddress);
    try {
        InetAddress inetAddress = InetAddress.getByName(remoteAddress);
        System.out.println("inetAddress: " + inetAddress);
        computerName = inetAddress.getHostName();

        System.out.println("computerName: " + computerName);


        if (computerName.equalsIgnoreCase("localhost")) {
            computerName = java.net.InetAddress.getLocalHost().getCanonicalHostName();
        } 
    } catch (UnknownHostException e) {

        }

    System.out.println("computerName: " + computerName);
}    

关于servlets - 在基于 servlet 的 Web 应用程序中获取 LAN 客户端计算机名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48202309/

相关文章:

java - 尝试执行 Jetty 服务器时出现处理程序错误

javascript - 保存客户端动态请求的数据

javascript - 如何在内存中创建文件供用户下载,而不是通过服务器?

java - Servlet 过滤器更改响应?

Django 中的 Java 应用程序上下文

java - 在 servlet 中使用网站的 API。这是正确的方法吗?

javascript - 如何从 Next.js 中的一个页面请求中预取多个页面的代码?

iphone - 检查本地设备的专用网络是否打开了某个端口(iPhone/ objective-c )

mysql - 通过局域网访问 MAMP 中的 WordPress 网络安装

python - 在需要身份验证的地方使用 BeautifulSoup