0

好吧,我知道在问这里之前我应该​​尝试了很多,但我的问题是。很难获得 fcgi 文档的结构化参考。所以我希望你不会那么反对我,即使在缺乏自学方面也是如此。

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

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

我的第一次尝试是检查getenv第一个 fcgi 教程中提供的内容,但正如我在此处描述的那样尝试它:

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;
}
4

1 回答 1

2

利用getenv("REMOTE_ADDR")

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

于 2013-10-10T20:02:19.890 回答