在某些情况下,互联网加速服务提供商(例如 Akamai 的 IPA)将对连接进行 NAT,但会在 TCP 选项中(即在 TCP 标头的末尾)提供有关原始客户端 IP 地址的信息。
某些负载均衡器(例如 BIG-IP)能够将 TCP 标头中的信息转换为 HTTP X-Forwarded-For 标头行,我们的应用程序可以读取:
但是,如果我不在这些负载平衡器之一的后面,我如何从 IIS/ASP.NET 应用程序中获取信息?
我已经考虑为此用 C++ 编写一个 CHttpModule,并且 IHttpContext 还公开了一个 GetConnection() 方法。但是返回的 IHttpConnection 接口过于简单,无法访问任何低级信息,如 TCP 选项。
http://msdn.microsoft.com/en-us/library/ms693613(v=vs.90).aspx
非常感谢任何帮助、方向、指针等。