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(" "); println(" "); println("
Active control set:",cur_controlset,"
Computer name:",(IsValid(val)) ? RegistryKeyValueToString(val.value,val.type) : "","
"); 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("

"); } }