【问题标题】:How to get client machine name using asp.net web application如何使用 asp.net Web 应用程序获取客户端机器名称
【发布时间】:2015-12-14 19:47:54
【问题描述】:

当.net web应用程序部署在服务器和F5负载均衡器后面时如何获取客户端机器名

System.Net.Dns.GetHostEntry(HttpContext.Current.Request.ServerVariables["REMOTE_HOST"]).HostName;

这在本地机器上执行时会给出正确的值,但在服务器上部署时会返回 F5 负载平衡器 IP 地址。

【问题讨论】:

    标签: asp.net load-balancing


    【解决方案1】:

    如果您的 F5 配置正确,它将添加一个 X-FORWARDED-FOR HTTP 标头,给出它转发请求的客户端的 IP 地址(可能还包括客户端和您的 F5 之间路径中的其他代理)

    【讨论】:

    • 它返回正确的 IP 地址,但我正在寻找机器名称
    • 我不知道 F5 会传递机器名称。如果将 F5 配置为显式转发代理,则有可能,但我不确定。尝试将所有 HTTP 标头写入日志文件(或在调试器中查看它们)并查看其中的内容。 F5 可能会添加一个我不知道的附加标题。
    • 我正在从 F5 获取机器 IP 地址并执行 DNS 反向查找以获取机器名称。
    • 只要为IP地址配置了反向DNS,您就可以从X-FORWARDED-FOR中获取您需要的IP并查找DNS名称(如果有)。这通常与机器名称不同,这意味着分配给该计算机的唯一名称。例如,您可以有一台名为 Mickey 的计算机和一台名为 Mini 的计算机都为 www.mydomain.com 提供服务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    相关资源
    最近更新 更多