Web服务器(IIS)如何检测网络层数据包的用户客户端IP



我有一个Web服务器,可以通过应用层中的http请求标头接收客户端IP。但是,如果 http 标头中不存在 IP 信息。如何知道网络层中的客户端 IP?例如,安装网络软件或硬件来检测源IP并将其传递给我的服务器。

每个接受的 TCP 套接字都可以通过 getsockname() API 提供其远程 IP 地址和远程端口号。

我想你会发现你的IIS已经在这样做了。HTTP 标头中通常不提供客户端 IP。这将是多余的。

如果"客户端 IP"是指发起 HTTP 请求的地址,而不是将请求中继到 Web 服务器的最后一个代理,则使用 HTTP 标头约定更可靠。请参阅 X 转发对象

最新更新