在某些情况下,互联网加速服务提供商(例如 Akamai 的 IPA)将对连接进行 NAT,但会在 TCP 选项中提供有关原始客户端 IP 地址的信息,即在 TCP header 的末尾。
某些负载均衡器(例如 BIG-IP)能够将信息从 TCP header 转换为 HTTP X-Forwarded-For header 行,我们的应用程序可以读取:
但是,如果我不支持这些负载平衡器之一,我如何从 IIS/ASP.NET 应用程序获取信息?
我研究过为此用 C++ 编写一个 CHttpModule,并且 IHttpContext 还公开了一个 GetConnection() 方法。但返回的 IHttpConnection 接口(interface)过于简单,无法访问任何低级信息,如 TCP 选项。
http://msdn.microsoft.com/en-us/library/ms693613(v=vs.90).aspx
非常感谢任何帮助、指导、指示等。
最佳答案
我还没有尝试过这个产品,但它听起来像你需要的 - http://www.winfrasoft.com/products/X-Forwarded-For/
克劳斯·拉杰
关于asp.net - 如何从 IIS 内部访问 TCP 选项 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12827827/