【问题标题】:How to get client domain info? [duplicate]如何获取客户域信息? [复制]
【发布时间】:2014-08-21 04:11:00
【问题描述】:

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

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

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

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

主要是因为我正在制作一个proxy 应用程序,其中的域来自GoDaddy (for example)

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

【问题讨论】:

  • 什么是“代理应用”?如果您使用 apache http 代理,请改用代理 ajp。其他方式编辑您的任务并添加技术和配置。答案可能不属于 java 代码。

标签: java spring restlet


【解决方案1】:

你可以试试这个。

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

Converting an IP address to host name

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我有两个域,比如 www.xyz.com 和 www.abc.com 这两个域指向同一个 Restlet 应用程序。现在我需要该应用程序来确定或获取客户端是否访问了 xyz 或 abc。我的意思是这就是我需要这样做的原因
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 2020-03-22
    相关资源
    最近更新 更多