0

ここで質問する前にいろいろと試してみるべきだったことはわかっていますが、私の問題は. fcgi ドキュメントの構造化されたリファレンスを入手するのは困難です。ですから、独学が少し不足しているという面でも、私にそれほど反対票を投じないでください。

要求しているクライアントの IP をアーカイブする方法を見つけようとしています。

私の推測では (私の理解が正しければ)、FCGX_stream ハンドルを使用して接続の HTTP ヘッダーを要求できます。しかし、もしあればもっと簡単な方法を好むでしょう。

私の最初の試みはgetenv、最初の fcgi チュートリアルで提供されているようにそれをチェックすることでしたが、ここで説明されているように試してみました:

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

正常にコンパイルされましたが、最初のリクエストで fcgi アプリがクラッシュしました。(しかし、get env が MY を要求しているだけであることがわかったので、とにかく私の問題は解決しません。したがって、ホストのもの、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 に答える