function fred_report_info() {
var info={report_cat : "SYSTEM",
report_name : "Current network settings",
report_author : "Gillen Daniel",
report_desc : "Dump current network settings",
fred_api : 2,
hive : "SYSTEM"
};
return info;
}
var table_style = "border-collapse:collapse; margin-left:20px; font-family:arial; font-size:12";
var cell_style = "border:1px solid #888888; padding:5; white-space:nowrap;";
function IsValid(val) {
return (typeof val!=='undefined');
}
function PrintTableHeaderCell(str) {
println("
",str," | ");
}
function PrintTableDataCell(alignment,str) {
var style=cell_style+" text-align:"+alignment+";";
println(" ",str," | ");
}
function ZeroPad(number,padlen) {
var ret=number.toString(10);
if(!padlen || ret.length>=padlen) return ret;
return Math.pow(10,padlen-ret.length).toString().slice(1)+ret;
}
function fred_report_html() {
// See Appendix A: TCP/IP Configuration Parameters:
// http://technet.microsoft.com/de-de/library/cc739819%28v=WS.10%29.aspx
var val;
println(" Current network settings (Tcp/Ip)
");
// Get current controlset
var cur_controlset=GetRegistryKeyValue("\\Select","Current");
if(IsValid(cur_controlset)) {
cur_controlset=RegistryKeyValueToString(cur_controlset.value,cur_controlset.type);
// Current holds a DWORD value, thus we get a string like 0x00000000, but
// control sets are referenced by its decimal representation.
cur_controlset="ControlSet"+ZeroPad(parseInt(String(cur_controlset).substr(2,8),16),3)
// Computer name
val=GetRegistryKeyValue(cur_controlset+"\\Control\\ComputerName\\ComputerName","ComputerName");
println(" ");
println("
");
println(" Active control set: | ",cur_controlset," |
");
println(" Computer name: | ",(IsValid(val)) ? RegistryKeyValueToString(val.value,val.type) : ""," |
");
println("
");
println("
");
println(" ");
println(" ");
PrintTableHeaderCell("Adapter");
PrintTableHeaderCell("Configuration");
PrintTableHeaderCell("IP address");
PrintTableHeaderCell("Subnet mask");
PrintTableHeaderCell("Nameserver(s)");
PrintTableHeaderCell("Domain");
PrintTableHeaderCell("Default gateway");
PrintTableHeaderCell("DHCP server");
PrintTableHeaderCell("DHCP lease optained");
PrintTableHeaderCell("DHCP lease terminates");
println("
");
// Iterate over all available network adapters
var adapters=GetRegistryNodes(cur_controlset+"\\Services\\Tcpip\\Parameters\\Adapters");
for(var i=0;i");
PrintTableDataCell("left",adapter_name);
PrintTableDataCell("left",dhcp_enabled ? "DHCP" : "Static");
PrintTableDataCell("left",ip_address);
PrintTableDataCell("left",subnet_mask);
PrintTableDataCell("left",nameservers);
PrintTableDataCell("left",domain);
PrintTableDataCell("left",default_gateway);
PrintTableDataCell("left",dhcp_server);
PrintTableDataCell("left",lease_obtained);
PrintTableDataCell("left",lease_terminates);
println(" ");
// TODO: Check for EnableSecurityFilters, TCPAllowedPorts and UDPAllowedPorts to get firewall status.
// TODO: Get persistent routes from \ControlSet001\Services\Tcpip\Parameters\PersistentRoutes
}
println("
");
println(" ");
} else {
println(" ");
println(" Unable to determine current control set!
");
println(" Are you sure you are running this report against the correct registry hive?");
println("
");
}
}