home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 April / CHIP_CD_2005-04.iso / software / netv / NVinst.exe / $INSTDIR / Scripts / Scripter / NameChanges.nvs < prev    next >
Encoding:
Text File  |  2005-02-22  |  2.5 KB  |  99 lines

  1. Program NameChangeLogger;
  2. {
  3. *****************************************************************************
  4. *Logs changing of hostnames and host IPs v1.1 by KillerR                    *
  5. *Logging occurs after script loading and after every global recheck         *
  6. *User defined constants:                                                    *
  7. *LOGFILENAME- filename of log file without extension and number             *
  8. *MAXFILESIZE- maximum size of log file in bytes                             *
  9. *RENAMEMODE-  If 1 then rename logfile when too large. If 0 then log file   *
  10. *             will be truncated from the beggining                          *
  11. *****************************************************************************
  12. }
  13. const logfilename='namechanges';
  14. const maxfilesize=1048576;
  15. const renamemode=0;
  16.  
  17.  
  18. var e,i1,i2,filecnt,f:integer;
  19.     fn,hn,hi,hnx,hix,s:string;
  20.     hst:TNVHost;
  21.     dtm:TDateTime;
  22.  
  23. function openlogfile:integer;
  24. var sz,szh,f:integer;
  25.     s,fn:string;
  26. begin
  27. fn:=nv_directory+logfilename+inttostr(filecnt)+'.log';
  28. f:=OpenFile(fn,7);sz:=GetFileSize(f,szh);
  29. if(sz>maxfilesize)then
  30. begin
  31. if renamemode<>0 then begin
  32. CloseFile(f);   
  33. filecnt:=filecnt+1;
  34. WriteIni('NameChanges','LogFileCount',IntToStr(filecnt));
  35. fn:=nv_directory+logfilename+IntToStr(filecnt)+'.log';
  36. f:=OpenFile(fn,7);
  37. end else begin
  38. readfile(f,sz,s);
  39. if(length(s)>maxfilesize)then delete(s,1,maxfilesize-length(s));
  40. CloseFile(f);f:=OpenFile(fn,11);
  41. WriteFile(f,s);
  42. end;
  43. end;
  44. SetFilePointer(f,0,0,2);
  45. result:=f;
  46. end;
  47.  
  48. procedure golog;
  49. begin
  50. f:=openlogfile;
  51. dtm:=Now;
  52. hst.nextid:=0;
  53. repeat
  54. hst.GetHost(hst.nextid,0);
  55. if(hst.id<>0)then
  56. begin
  57. hn:=lowercase(hst.GetMetaVar('ncl_on'));
  58. hi:=lowercase(hst.GetMetaVar('ncl_oi'));
  59. hnx:=lowercase(hst.hname);
  60. hix:=lowercase(hst.hip);
  61. if(hn<>hnx)or(hi<>hix)then
  62. begin
  63. hst.setmetavar('ncl_on',hnx);
  64. hst.setmetavar('ncl_oi',hix);
  65. s:='['+FormatDateTime('YYYY-MM-DD HH:MM.SS',dtm)+'] ('+hn+' -> '+hnx+') ('+hi+' -> '+hix+')'+chr(13)+chr(10);
  66. writefile(f,s);
  67. end;        
  68.  
  69. end;
  70. until hst.nextid=0;
  71. closefile(f);
  72. writeini('NameChanges','LogFileCount',inttostr(filecnt));
  73. end;
  74.  
  75.  
  76. begin
  77. filecnt:=strtoint(readini('NameChanges','LogFileCount','0'));
  78. fn:=nv_directory+logfilename+inttostr(filecnt)+'.log';
  79. hst:=tnvhost.create;
  80.  
  81. golog;  
  82. repeat
  83. e:=waitevent(i1,i2);
  84. if(e=NMNP_ACTION)then
  85. begin
  86. if(i1 and NVACTION_RECHECK)<>0 then
  87. begin
  88. if(i1 and NVACTION_LIST)<>0 then
  89. begin
  90. golog;
  91. end;
  92. end;
  93. end;
  94. until e=0;
  95.  
  96.  
  97. hst.free;
  98. end.
  99.