Project name: |
NetMonitor |
Project events: |
IP monitoring |
Project style: |
Lama lamě |
Used technology: |
WSH, JScript, Microsoft Excel |
Project target: |
PC with Windows OS, Windows Excel and Internet/LAN connection |
Description: |
Skript monitoruje aktivní IP adresy (v daném rozsahu) v síti. Výsledek ukládá do souboru xls souboru. |
Nasledující kód uložte jako: "NetMonitor.js"
var fileName="LanInfo.xls";
var directory="C:\\";
var adresa="192.168.50.";
var objShell = WScript.CreateObject("WScript.Shell");
var excel = WScript.CreateObject("Excel.Application");
excel.Visible=true;
var data;
var fso= WScript.CreateObject("Scripting.FileSystemObject");
if (fso.FileExists(directory+fileName))data = excel.Workbooks.Open(directory+fileName);
else {data = excel.Workbooks.Add;data.SaveAs (directory+fileName);
excel.Cells(1,1).Value=3;excel.Cells(1,2).Value=0;}
// vytvoreni virtualniho souboru pro zapis
var tfolder = fso.GetSpecialFolder(2);
var tname = fso.GetTempName();
var TempFile = tfolder + tname;
//
var ipa;
var rad=3;
var sl=excel.Cells(1,1).Value;
var radek=excel.Cells(1,2).Value;
var datum = new Date();
var dz= datum.getDate()+"."+datum.getMonth()+"/"+datum.getHours()+":"+datum.getMinutes();
excel.Cells(rad-1,sl).Value=dz;
for (var i=radek;i<256;i++){
excel.Cells(i+rad,1).Value =adresa+i;
dz= datum.getDate()+"."+datum.getMonth()+"."+datum.getHours();
if( checkOut(adresa+i)==true){
excel.Cells(i+rad,sl).Font.Bold = true;
excel.Cells(i+rad,sl).Value="L"+ dz;
if(excel.Cells(i+rad,2).Value!="Live"){
excel.Cells(i+rad,1).Font.Bold = true;
excel.Cells(i+rad,2).Font.Bold = true;
excel.Cells(i+rad,2).Value="Live";
excel.Cells(i+rad,sl+1).Value="Now!";
}
}
else{
excel.Cells(i+rad,sl).Value="D"+dz;
if(excel.Cells(i+rad,2).Value!="Live") excel.Cells(i+rad,2).Value="Dead";
}
excel.Cells(1,2).Value=i;
if(i+1==256) {excel.Cells(1,1).Value=sl+1;excel.Cells(1,2).Value=0;}
if(i%20==0) data.Save();
//if(excel.Cells(i+rad,4).Value.substring(0,1)=="L")
// excel.Cells(i+rad,4).Font.Bold = true;
}
data.Save();
//excel.Quit();
function checkOut(ip){
//var pingOut = objShell.Exec("ping -n 3 -w 500 "+ip);
//var pingTxt = pingOut.StdOut;
objShell.Run("cmd /c ping -n 3 -w 500 "+ip+" > "+TempFile,0,true);
var results = fso.GetFile(TempFile);
var pingTxt = results.OpenAsTextStream(1);
var aktivni = false;
var radek;
while(pingTxt.AtEndOfStream==false){
radek=pingTxt.readLine().toString();
if(radek.substring(0,3)=="Odp"){aktivni=true;break;}
// POZOR POZOR jesli pouzivate angl. verzi Windows musíte v predchozim radku
// provest zmenu if(radek.substring(0,3)=="Rep")
}
pingTxt.Close();
//results.delete();
return aktivni;
}
Skript je velmi jednoduchý. Když ho spustíte (musíte mít nainstalovaný Microsoft Excel), a až poté se mrknete na zdroják, tak ho velmi rychle pochopíte a snadno přizpůsobíte Vaším potřebám.
Zatím ahoj, Raduzz