java - 如何获取 apache2 反向代理和 tomcat 服务器后面的客户端主机名?
问题描述
我在服务器apache2
前用作反向代理tomcat8
。我已经利用它X-Forwarded-For
来查找客户端 IP 地址。
但我的目标是获得客户hostname
。这有可能吗?我必须告诉apache还是tomcat?
解决方案
通过 http,您将获得客户端的公共 IP 地址,这可能是他们的代理,也可能是他们的 NAT 路由器。您可以使用该 IP 地址进行反向 DNS 查找,但由于客户端计算机很少有可公开寻址的 DNS 条目,因此您不会走得太远。(事实上,您也准确地问过这个问题并在那里得到了很好的答案)
由于这个问题专门关于hostname,而不是关于 DNS 条目,因此这个答案与您的其他问题的答案不同:
我看到访问主机名本身(类似于“John's Mac”)的唯一选择是浏览器显示它 - 例如通过 Javascript。如果浏览器允许这样做,我相信所有的广告网络都会对这种信息泄漏垂涎三尺。这就是为什么我希望您无法使用实际主机名的原因,甚至无需查找任何选项。
推荐阅读
- android - 谷歌地图:绘制路线起点和终点相连
- node.js - 如何连接 Google Actions 和 Watson?
- sql - 舍入一个 SQL 值输出?
- r - 使用 pmap 将不同的正则表达式应用于 tibble 中的不同变量?
- git - Git从分支合并到分支的问题
- python - np.arange 在调整大小时创建一个空值矩阵
- c - 期待 2 种类型的输入?
- mysql - 如何创建自定义用户登录帐户页面,用户可以在其中上传存储在 mysql 数据库中的论文?
- .net - 在 JScript 中,为什么我不能使用 HashTable 的枚举器或键?
- angular - 在兄弟姐妹Angular 6之间传递对象的最佳方式