[질문] 중복되지않게 logging을 할려고합니다.

keston의 이미지

서버에서 로깅루틴을 만들고 있습니다.
로그포맷은 1월 1일 1시 1분<tab>client ip .... ..... 이런 식입니다.
이중에서 client ip가 이전에 로깅되있는 거면 기록을 하지 않도록 할려고 합니다.

int flag=0;
fp=fopen("./log", "r");
while(fscanf(fp, "%d월 %d일 %d시 %d분\t%s\n", &mon, &day, &hour, &min, iplist")!=EOF) {
   if(!strcmp(ip, inet_ntoa(ClientAddr.sin_addr))) break;

   else flag=1;
}
fclose(fp);

if(flag==1)  로깅..

대충 이런식으로 만들었는데요..
로그기록을 봐보면 이전에 기록되있는 ip인데도 계속 중복해서 기록됩니다.
뭐가 잘못 됐을까요?
답변에 미리 감사드립니다.
angpoo의 이미지

int flag=0;
fp=fopen("./log", "r");
while(fscanf(fp, "%d월 %d일 %d시 %d분\t%s\n", &mon, &day, &hour, &min, iplist")!=EOF) {
   if(!strcmp(ip, inet_ntoa(ClientAddr.sin_addr))) {
      flag = 1;
      break;
   }
}
fclose(fp);

if(flag==0)  로깅..

이러면 될듯도 하지만서두 로그파일 커질 수록 로그한줄 적는데 하루죙일 걸리겠네요.
최근 아이피 몇개 기억하고 있다가 그중에 없는 경우만 기록하면 충분하죠.