f8g

UPnP

Enumerator.prototype.each = function(f, stop){
	var stop = stop || "_stop_";
	this.moveFirst();
	for(; !this.atEnd(); this.moveNext()){
		if(f(this.item()) == stop)
			break;
	}
};

Array.prototype.each = function(f){
	for(var i = 0; i < this.length; i++)
		f(this[i], i);
};

String.prototype.repeat = function(n){
	var s = [];
	for(var i = 0; i < n; i++)
		s.push(this);

	return s.join("");
};
var deviceFinder = WScript.CreateObject("UPnP.UPnPDeviceFinder");
var founddDevices = deviceFinder.FindByType("urn:schemas-upnp-org:service:WANIPConnection:1",0);

var ps = [
	"ModelName",
	"FriendlyName",
	"UniqueDeviceName",
	"ModelNumber",
	"ModelURL",
	"Description",
	"ManufacturerName",
	"HasChildren",
	"IsRootDevice",
	"ManufacturerURL",
	"PresentationURL",
	"SerialNumber",
	"Type",
	"UPC"
];

showDeviceInfo(founddDevices, 0);

function showDeviceInfo(devices, n){
	var t = "    ";

	(new Enumerator(devices)).each(function(device){
		ps.each(function(v){
				WScript.Echo(t.repeat(n), v, ":", device[v]);
		});

		if(device.services.Count > 0){
			WScript.Echo(t.repeat(n), "services:");
			(new Enumerator(device.services)).each(function(service){
				WScript.Echo(t.repeat(n+1), service.ServiceTypeIdentifier);
			});
		}

		WScript.Echo("");

		if(device.HasChildren)
			showDeviceInfo(device.Children, n + 1);
	});
}