Zpět na seznam článků     Číst komentáře (3)     Verze pro tisk

WSH _ První krůčky II.

Autor: Raduzz   
5.10.2006

Praktické využití Windows script hostu, aneb snadné sledování IP adres.


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

Líbil se Vám článek?
Budeme potěšeni, pokud vás zaujme také reklamní nabídka

Social Bookmarking

     





Hodnocení/Hlasovalo: 0/0

1  2  3  4  5    
(známkování jako ve škole)