获取帖子客户端IP

问题描述 投票:0回答:1

我知道在问这里之前我应该尝试很多,但我的问题是。很难获得 fcgi 文档的结构化参考。所以我希望你不要对我投太多反对票,即使是在自学方面有一点缺乏。

我正在尝试找到一种方法来存档请求客户端的 IP。

我猜(如果我理解正确的话)我可以通过 FCGX_stream 句柄请求连接的 HTTP 标头。但如果有的话,我更喜欢一种更简单的方法。

我的第一次尝试是检查第一个 fcgi 教程中提供的

getenv
,但我按照此处所述进行了尝试:

https://stackoverflow.com/a/4107212/2003898

它编译得很好,但在第一次请求时我的 fcgi 应用程序崩溃了。 (但无论如何它都不能解决我的问题,因为我发现 get env 只是请求我的,所以主机的,env 的)

我也在尝试与

*FCGX_GetParam(const char *name, FCGX_ParamArray envp);

功能。但要么我太笨了,要么它只是提供我的本地环境,而不是 POST 端的环境。

因此,如果有人可以告诉我如何访问这些数据(最好不从 HTTP 标头中提取)或如何使用

FCGX_GetParam
来访问它, 我会很感激。

编辑:

#include "fcgi_stdio.h"
#include <stdlib.h>
int main()
{       
    int count = 0;
    while(FCGI_Accept() >= 0)
    {
        for (count = 0; environ[count] != NULL; count++)
        {
            printf("%s\n", environ[i]);
        }
    }
                
    return 0;
}
c freebsd fastcgi
1个回答
2
投票

使用

getenv("REMOTE_ADDR")

远程 IP 地址无论如何都不包含在 HTTP 标头中

© www.soinside.com 2019 - 2024. All rights reserved.