如何获取remoteHost java

时间:2016-07-18 13:33:40

标签: java

我正在尝试获取客户端的主机名, 我使用这段代码:

public String GetHostIP(HttpServletRequest request) throws UnknownHostException {
        String ipAddress = request.getRemoteAddr();
        System.out.println("remoteAddress ipAddress is : " + ipAddress);
        try {
            InetAddress Adress = InetAddress.getByName(ipAddress);
            clientHostName = Adress.getHostName();
            System.out.println("Host name is " + clientHostName);
        } catch (UnknownHostException e) {
            System.out.println(e.getMessage());
        }
        return clientHostName;
    }

我的问题是,为什么无论主机连接什么我都有相同的结果

  

remoteAddress ipAddress是:10.8.100.30主机名是:10.8.100.30

谢谢!

1 个答案:

答案 0 :(得分:2)

来自documentation(粗体矿):

  

public String getHostName()

     

获取此IP地址的主机名。   如果使用主机名创建此InetAddress,则将记住并返回此主机名;否则,将执行反向名称查找,并将根据系统配置的名称查找服务返回结果。如果需要查找名称服务,请致电getCanonicalHostName

     

如果有安全管理器,则首先使用hostname调用其checkConnect方法,并将-1作为其参数,以查看是否允许该操作。 如果不允许该操作,它将返回IP地址的文本表示。

ThischeckConnect的相关文档。