home *** CD-ROM | disk | FTP | other *** search
- Program NameChangeLogger;
- {
- *****************************************************************************
- *Logs changing of hostnames and host IPs v1.1 by KillerR *
- *Logging occurs after script loading and after every global recheck *
- *User defined constants: *
- *LOGFILENAME- filename of log file without extension and number *
- *MAXFILESIZE- maximum size of log file in bytes *
- *RENAMEMODE- If 1 then rename logfile when too large. If 0 then log file *
- * will be truncated from the beggining *
- *****************************************************************************
- }
- const logfilename='namechanges';
- const maxfilesize=1048576;
- const renamemode=0;
-
-
- var e,i1,i2,filecnt,f:integer;
- fn,hn,hi,hnx,hix,s:string;
- hst:TNVHost;
- dtm:TDateTime;
-
- function openlogfile:integer;
- var sz,szh,f:integer;
- s,fn:string;
- begin
- fn:=nv_directory+logfilename+inttostr(filecnt)+'.log';
- f:=OpenFile(fn,7);sz:=GetFileSize(f,szh);
- if(sz>maxfilesize)then
- begin
- if renamemode<>0 then begin
- CloseFile(f);
- filecnt:=filecnt+1;
- WriteIni('NameChanges','LogFileCount',IntToStr(filecnt));
- fn:=nv_directory+logfilename+IntToStr(filecnt)+'.log';
- f:=OpenFile(fn,7);
- end else begin
- readfile(f,sz,s);
- if(length(s)>maxfilesize)then delete(s,1,maxfilesize-length(s));
- CloseFile(f);f:=OpenFile(fn,11);
- WriteFile(f,s);
- end;
- end;
- SetFilePointer(f,0,0,2);
- result:=f;
- end;
-
- procedure golog;
- begin
- f:=openlogfile;
- dtm:=Now;
- hst.nextid:=0;
- repeat
- hst.GetHost(hst.nextid,0);
- if(hst.id<>0)then
- begin
- hn:=lowercase(hst.GetMetaVar('ncl_on'));
- hi:=lowercase(hst.GetMetaVar('ncl_oi'));
- hnx:=lowercase(hst.hname);
- hix:=lowercase(hst.hip);
- if(hn<>hnx)or(hi<>hix)then
- begin
- hst.setmetavar('ncl_on',hnx);
- hst.setmetavar('ncl_oi',hix);
- s:='['+FormatDateTime('YYYY-MM-DD HH:MM.SS',dtm)+'] ('+hn+' -> '+hnx+') ('+hi+' -> '+hix+')'+chr(13)+chr(10);
- writefile(f,s);
- end;
-
- end;
- until hst.nextid=0;
- closefile(f);
- writeini('NameChanges','LogFileCount',inttostr(filecnt));
- end;
-
-
- begin
- filecnt:=strtoint(readini('NameChanges','LogFileCount','0'));
- fn:=nv_directory+logfilename+inttostr(filecnt)+'.log';
- hst:=tnvhost.create;
-
- golog;
- repeat
- e:=waitevent(i1,i2);
- if(e=NMNP_ACTION)then
- begin
- if(i1 and NVACTION_RECHECK)<>0 then
- begin
- if(i1 and NVACTION_LIST)<>0 then
- begin
- golog;
- end;
- end;
- end;
- until e=0;
-
-
- hst.free;
- end.
-