如何获取客户端域信息?

时间:2014-08-21 04:11:01

标签: java spring restlet

在Spring或Restlet Web应用程序中,如何获取客户端的域名?

我现在能做的只是获取客户端IP地址:

String clientIp = getRequest().getClientInfo().getAddress();

但是我需要获取客户端的域名。

主要是因为我正在制作proxy来自GoDaddy (for example)

的域名的应用
  • www CNAME转发至proxy应用
  • 代理应用获取域名,例如xyz.comabc.com,并将其转发到特定IP或其他域。

2 个答案:

答案 0 :(得分:5)

你可以试试这个。

InetAddress addr = InetAddress.getByName(clientIp);
String host = addr.getHostName();
System.out.println(host);

Converting an IP address to host name

答案 1 :(得分:1)

一般来说,我建议您查看传入请求的完整内容。检查提供的标题,看看它们是否包含您需要的数据。

使用Restlet,您可以查看请求#ClientInfo#UpStreamAddress方法。它负责转发请求提供的数据,并返回客户端的IP。 我不知道客户的主机域是什么意思。