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);
});
}