1
캡처 한 패킷의 TCP 페이로드를 파일에 저장하는 'C'코드를 작성했습니다 (각 패킷의 페이로드는 여러 "\ n"문자로 구분됩니다). C를 사용하면 모든 패킷을 캡처 한 후 파일에서 특정 문자열을 검색 할 수 있습니까?중급 C : 큰 파일의 문자열 검색
P .: 파일이 캡처 된 패킷의 수에 따라 매우 클 수 있습니다.
캡처 한 패킷의 TCP 페이로드를 파일에 저장하는 'C'코드를 작성했습니다 (각 패킷의 페이로드는 여러 "\ n"문자로 구분됩니다). C를 사용하면 모든 패킷을 캡처 한 후 파일에서 특정 문자열을 검색 할 수 있습니까?중급 C : 큰 파일의 문자열 검색
P .: 파일이 캡처 된 패킷의 수에 따라 매우 클 수 있습니다.
줄마다 파일을 읽고 strstr을 사용하여 검색하십시오.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
FILE * fp;
char * line = NULL;
size_t len = 0;
ssize_t read;
char * pos;
int found = -1;
fp = fopen("filename", "r");
if (fp == NULL)
exit(EXIT_FAILURE);
while ((read = getline(&line, &len, fp)) != -1)
{
pos = strstr(line,"search_string");
if(pos != NULL)
{
found = 1;
break;
}
}
if(found==1)
printf("Found");
else
printf("Not Found");
fclose(fp);
if (line)
free(line);
exit(EXIT_SUCCESS);
}
왜 파일을 쓰고 난 후에 검색하려면 들어오는 패킷이 버퍼에 기록되는 것일까 요? –
페이로드로 한 행에 여러 개의 '\ n'바이트를 포함 할 수있는 TCP 패킷이 있습니까? – Gerhardh
Errr .... 네, 가능합니다. –