服务器logging错误的IP(代理/防火墙/负载均衡器)

我有一台运行Windows Server Web 2008的VDS服务器,并安装了plesk 10。 我想我得到的不是访问者的IP,而是一个固定的IP(178.18.198.2)在我的网站代码asp.net / PHP。 我也在IIS日志文件中得到这个IP。 有人可以解释发生了什么?

我的服务器ips是178.18.198.90 – 178.18.198.94和我的子网掩码是178.18.198.1。 在这个服务器上运行的网站之一是innovacube.com

同样的问题堆栈溢出问题无法获取用户的IP地址

更新公司build议我使用HTTP_CLIENT_IP头,而不是REMOTE_ADDR,也为IIS日志我必须使用Microsoft Internet Information Services ISAPI筛选器的XCLIENT.DLL 。

如何使Web服务器日志显示客户端的真实IP地址作为所有HTTP请求的源IP地址?

这里是另一个有用的文章: HOWTO:ISAPI筛选logging负载平衡IIS服务器的原始客户端IP

178.18.198.2显然是一个代理和/或防火墙,您的所有传入请求都将通过。 当我访问http://innovacube.com/key.aspx时 ,我确实在HTTP_CLIENT_IP字段中看到了我的 IP地址,这就是为什么我怀疑你的神秘.2设备确实是一个代理,显然是透明的,作为innovacube.com上的nslookup返回178.18.198.90。

在您的代码中,您应该使用此字段来确定您的访问者的IP地址,以及更新您的日志以logging此标头(对不起,不知道如何为IIS执行此操作)。 但是要注意,在这些服务器上工作的可能不会在另一个环境/另一个networking中工作。

可能是你的路由器/默认网关正在纳入传入的请求,以便您的服务器日志填充该设备的IP?

尝试得到这个

 context.Request.ServerVariables["HTTP_X_CLUSTER_CLIENT_IP"] 

在我的情况下,它的作品。