我正在尝试通过http请求获取客户端的IP到iis上托管的页面。
我调查过:
1)http://forums.asp.net/t/1780050.aspx/1
2)Getting the client IP address: REMOTE_ADDR, HTTP_X_FORWARDED_FOR, what else could be useful?
3)How to get a user's client IP address in ASP.NET?
正如大家所说的那样,没有万无一失的方法来获取客户端IP,因为客户端可以在NAT之后,也可以伪造IP地址。
但是,我尝试了REMOTE_ADDR,HTTP_X_FORWARDED_FOR和UserHostAddress。它们都返回服务器的IP而不是客户端(服务器位于与客户端不同的机器上),即127.0.0.1或服务器的LAN IP(192.168.xxx.xxx)。我期待HTTP_X_FORWARDED_FOR的正确响应,因为它不受代理服务器的影响。
令人费解的是,当我在与客户端相同的机器上托管页面,即服务器在localhost上时,我能够获得客户端ip(显然等于服务器ip)
IIS中是否需要配置任何设置才能使其正常工作?或者是内网中的其他问题吗?