request.getRemoteAddr()返回服务器IP

时间:2018-11-01 08:06:19

标签: java rest api ip

@RequestMapping(value = "/origin/test/", method = RequestMethod.GET, headers = "Accept=application/json")
public String getTest(@Context HttpServletRequest request) {
    String Text = "Version - " + org.hibernate.Version.getVersionString();
    return Text+request.getRemoteAddr()+"----"+request.getLocalAddr();
}

在上面的代码中,在服务器中运行时,它将服务器IP作为远程地址和本地地址返回。 但是,当我以本地主机身份运行时,我已经向其他笔记本电脑发出了请求,它会正确返回该笔记本电脑的IP。 但是问题是服务器没有返回发出请求的笔记本电脑的IP。

2 个答案:

答案 0 :(得分:0)

请使用request.getRemoteAddr()再次更新它

@RequestMapping(value = "/origin/test/", method = RequestMethod.GET, headers = "Accept=application/json")
public String getTest(@Context HttpServletRequest request) {
    String Text = "Version - " + org.hibernate.Version.getVersionString();
    return Text+request.getRemoteAddr()+"----"+request.getRemoteAddr();
}

答案 1 :(得分:0)

getRemoteAddr()会引起麻烦,如果客户端位于任何代理后面,那么您将获得代理的IP地址

当客户端使用DHCP时,IP地址可以并且将在会话期间更改。

  

getRemoteAddr():返回发送请求的客户端或最后一个代理的Internet协议(IP)地址。