获取post客户端的IP

时间:2013-10-10 19:51:59

标签: c freebsd fastcgi

嗯,我知道在问这里之前我应该​​尝试过很多,但我的问题是。很难得到fcgi文档的结构化参考。所以我希望你不会那么沮丧,即使是在缺乏自学的方面。

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

我猜(如果我理解的话)我可以通过FCGX_stream句柄请求连接的HTTP头。但如果有的话,我宁愿选择更简单的方法。

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

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

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

我也在尝试使用

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

1 个答案:

答案 0 :(得分:2)

使用getenv("REMOTE_ADDR")

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