WWWPARSE ;WWW Logging parser [ 12/06/2003 2:51 PM ] Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Set DateCtrl=0 Write !,"Inlezen log-bestand" Set FileNm=$$READ^vhDEV(,"*.log","D`CBLOG^"_$ZN,"DPL") ; Opzoeken Hostname via nslookup ;Do NSLOOKUP($NA(^HULP(%J,"DNS")),$NA(^WWWLOG("DNS"))) ; Overbrengen van hulpbestand naar logbestand Set (Datum,Tijd,VolgNr)="" For Set Datum=$O(^HULP(%J,"L",Datum)) Quit:Datum="" Do .For Set Tijd=$O(^HULP(%J,"L",Datum,Tijd)) Quit:Tijd="" Do ..For Set VolgNr=$O(^HULP(%J,"L",Datum,Tijd,VolgNr)) Quit:VolgNr="" Do ...Set Rec=^(VolgNr) ...Set IP=$P(Rec,"`") ...Set ^WWWLOG("D",Datum,Tijd,VolgNr)=Rec Quit EXPORT Set Dev=0 Set Dev=$$OPEN^vhDEV(,"WWWLOG.txt","W") Quit:0[Dev Use Dev Set (Dat,Uur,VolgNr)="" Write $TR("Datum;Uur;IPAdres;DNS;Taal;URLLimit;URL",";",$C(9)),! For Set Dat=$O(^WWWLOG("D",Dat)) Quit:Dat="" Do .Set DatVol=$$EXTDATE^vhDTyp(Dat) .For Set Uur=$O(^WWWLOG("D",Dat,Uur)) Quit:Uur="" Do ..Set UurVol=$$EXTTIME^vhDTyp(Uur) ..For Set VolgNr=$O(^WWWLOG("D",Dat,Uur,VolgNr)) Quit:VolgNr="" Do ...Set Rec=^(VolgNr) ...Set IPNr=$P(Rec,"`") ...Set DNS="" ...Set:$L(IPNr) DNS=$G(^WWWLOG("DNS",IPNr)) ...Set:IPNr="195.207.171.241" DNS="VAN HOECKE" ...Set URL=$P(Rec,"`",2) ...Set Taal="NL" ...Set:$$UPCASE^vhRtn1($P(URL,"/",2))="FR" Taal="FR",URL=$P(URL,"/",1)_"/"_$P(URL,"/",3,99) ...Set URLLimit=$P(URL,"/",1,3) ...Write DatVol,$C(9),UurVol,$C(9),IPNr,$C(9),DNS,$C(9),Taal,$C(9),URLLimit,$C(9),URL,! Close:0'[Dev Dev Quit CBLOG(Rec) ; De local Nm bevat de filenaam (zie vhDEV) Use 0 Quit:$E(Rec)="#" ; Record bij opstarten van IIS Set Datum=$P(Rec," ") Set Datum=$$INTDATE^vhDTyp(Datum) Set Tijd=$P(Rec," ",2) Set Tijd=$$INTTIME^vhDTyp(Tijd) Set IP=$P(Rec," ",3) Quit:$E(IP,1,7)="192.168" ; local IP adress, voor intern gebruik Set ^HULP(%J,"DNS",IP)="" ; Bijhouden om straks na te kijken via NSLookUp Set URL=$P(Rec," ",5,99) Set URL=$P(URL," - ") Set URL=$$LOCASE^vhRtn1(URL) Quit:$E(URL,$L(URL)-3,$L(URL))'="html"&($E(URL,$L(URL)-2,$L(URL))'="htm")&($E(URL,$L(URL)-2,$L(URL))'="pdf") ; Alleen html en pdf paginas geen GIFS of JPG If $E(URL,$L(URL)-2,$L(URL))'="pdf" Set URL=$P(URL,"/",1,$L(URL,"/")-1) ; Bij html paginas alleen de directory Set:URL="" URL="home" Quit:'Datum If '$O(^HULP(%J,"C",Datum,IP,URL,Tijd-300)) Do .If $D(^WWWLOG("D",Datum,Tijd)) Quit ; Datum en tijdstip bestaat reeds .Set VolgNr=$O(^HULP(%J,"L",Datum,Tijd,""),-1)+1 .Set ^HULP(%J,"L",Datum,Tijd,VolgNr)=IP_"`"_URL Set ^HULP(%J,"C",Datum,IP,URL,Tijd)="" Use Dev Quit NSOLD Set SetRef=$NA(^WWWLOG("DNS")) Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Set Dev=$$OPEN^vhDEV(,"NSLOOK.BAT","W") Quit:0[Dev Use Dev Set (Dat,Uur,VolgNr)="" For Set Dat=$O(^WWWLOG("D",Dat)) Quit:Dat="" Do .Set DatVol=$$EXTDATE^vhDTyp(Dat) .For Set Uur=$O(^WWWLOG("D",Dat,Uur)) Quit:Uur="" Do ..Set UurVol=$$EXTTIME^vhDTyp(Uur) ..For Set VolgNr=$O(^WWWLOG("D",Dat,Uur,VolgNr)) Quit:VolgNr="" Do ...Set Rec=^(VolgNr) ...Set IPNr=$P(Rec,"`") ...Quit:'$L(IPNr) ...Quit:$D(^HULP(%J,IPNr)) ...Write "nslookup ",IPNr,! ...Set ^HULP(%J,IPNr)="" Close Dev Write "********",!,"Uitvoeren van de NSLOOK.BAT file",!,"Druk enter als klaar",! Read K NSOLD2 Set SetRef=$NA(^WWWLOG("DNS")) Do NSLOOKR Quit NSLOOKUP(GetRef,SetRef) Do NSLOOKW ;Uitvoeren .BAT bestand ;S R=$$JOBWAIT^cHOSTCMD(Dir_"NSLOOK.BAT > "_Dir_"NSLOOK.TXT","hide") Do NSLOOKR Quit NSLOOKW Set Dir="C:\" Set Dir=$$DIRUSER^vhDEV() ;Opbouw .BAT bestand Write !,"Opbouw NSLOOKUP" Set Dev=$$OPEN^vhDEV(Dir,"NSLOOK.BAT","W") Use Dev Set IP="" For Set IP=$O(@GetRef@(IP)) Quit:IP="" Do .Write "nslookup "_IP,! Close:0'[Dev Dev Quit NSLOOKR ;Inlezen van het resultaat Set HostName="" Set Dev=$$OPEN^vhDEV(Dir,"NSLOOK.TXT","R") Use Dev For Use Dev Quit:$ZC=-1 Read Rec Quit:$ZC=-1 Do .Use 0 .B .If $E(Rec,1,5)="Name:" Do ..Set HostName=$$TRIM($E(Rec,6,999)) .If $L(HostName),$E(Rec,1,8)="Address:" Do ..Set IP=$$TRIM($E(Rec,9,999)) ..W !,IP,"->",HostName ..Set:$L(IP) @SetRef@(IP)=HostName ..Set HostName="" Close:0'[Dev Dev Quit TRIM(Rec) For Quit:$E(Rec)'=" " Set $E(Rec)="" For Quit:$E(Rec,$L(Rec))'=" " Set $E(Rec,$L(Rec))="" Quit Rec