C を使用してパケット スニッフィングから HTTP コンテンツを構築しようとしています。現在、すべてのパケットをファイルに保存できますが、最初のパケットのヘッダーを削除したいと考えています。ヘッダーも TCP ペイロードの一部であるため、保存されています。ヘッダーの後の実際の本文は、二重の「CR、LF」の後または"\r\n\r\n"
HTTP 応答で始まります。
"\r\n"
それに続くバッファの部分だけを保存できるようにするにはどうすればよいですか? バッファは u_char 型です。コマンドがわかりません。私はGoogleや他の場所を見ましたが、ほとんどC#コマンドを見つけました.Cには何もありません.
私はこの機能を使用しています
void strtofcntnt(const u_char * Biffer, int size)
{
unsigned short iphdrlen;
struct iphdr *iph = (struct iphdr *)(Buffer + sizeof(struct ethhdr));
iphdrlen = iph->ihl*4;
struct tcphdr *tcph = (struct tcphdr*)(Buffer + iphdrlen + sizeof(struct ethhdr))
;
char data[] = *(Buffer);
char rdata[] = strstr(data, "\r\n\r\n");
unsigned int i;
for (i=0;i<=sizeof(data);i++)
{
fprintf(logfile,"%c",(unsigned int)data[i]);
}}
しかし、コンパイル中にchara data []およびchar rdata []行でエラーが発生します。エラーは、無効な初期化子を示しています。