情况
我们有:
- 在应用程序服务器上运行的 JSF Web 应用程序。
- 在客户端计算机上运行的用于智能卡访问的 Java 服务器套接字应用程序。
Web 应用程序需要读取客户端计算机上智能卡读卡器中的智能卡。
为此,Web 应用程序使用客户端计算机的 IP 地址与客户端计算机上的服务器套接字应用程序建立连接。
此 IP 地址是通过我们的 Web 应用程序调用的 ServletRequest 对象确定的。
问题
当此设置在 RD 环境(例如 Citrix)中运行时,我们收到服务器 IP 地址而不是客户端计算机 IP 地址。
问题
我们如何检索客户端 IP 地址? 也许通过使用 WebSockets?
<小时/>评论
我不确定这些是否正确,但我环顾四周,找到了一些可能的解决方案:
- 使用虚拟 IP 策略(我知道这会使本地主机调用恢复到正确的 IP 地址?)
- 向请求添加 X-Forwarded-For header
这些需要修改/配置 RD 环境,而我们不管理此级别。 当然,如果没有其他办法,我可以尝试这样请求。
最佳答案
您应该尝试 X-Forwarded-For。为我们工作。不知何故,情况不同,但它对我们有用。
关于javascript - Citrix 从 Web 应用程序检索客户端 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53154066/