Server Capabilities
Audience Level
Beginner and above
Summary
A very simple ASP page that reports some basic information on installed components on the web-server, provides a complete enumeration of Request.ServerVariables, advises on the version of JScript installed and the current time and timezone settings. It's nothing complicated!
Source Code
<%@Language="JScript" CodePage="65001" EnableSessionState=false%>
<%
Response.CharSet = "utf-8";
Response.ContentType = "text/plain";
Response.Buffer = true;
function testActiveXObject(strObjectName) {
var blnSuccess = false;
try {
var test = new ActiveXObject(strObjectName);
test = null;
blnSuccess = true;
}
catch (err) {
}
var whitespace = " ";
Response.Write(strObjectName + ":" + whitespace.substring(strObjectName.length + 1) + blnSuccess + "\r\n")
}
Response.Write("BASIC:\r\n");
Response.Write("=====:\r\n");
Response.Write("ScriptEngine: " + ScriptEngine() + "\r\n");
Response.Write("Version: " + ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion() + "." + ScriptEngineBuildVersion() + "\r\n");
Response.Write("Date: " + new Date().toGMTString() + "\r\n");
Response.Write("Timezone: UTC+" + new Date().getTimezoneOffset()/-60 + "hrs\r\n");
Response.Write("\r\n\r\n");
Response.Write("COMPONENTS:\r\n");
Response.Write("==========:\r\n");
testActiveXObject("Scripting.FileSystemObject");
testActiveXObject("Microsoft.XMLHTTP");
testActiveXObject("MSXML.DOMDocument");
testActiveXObject("MSXML2.DOMDocument");
testActiveXObject("MSXML2.DOMDocument.3.0");
testActiveXObject("MSXML2.DOMDocument.4.0");
testActiveXObject("MSXML2.DOMDocument.6.0");
testActiveXObject("MSXML2.XSLTemplate");
testActiveXObject("MSXML2.XSLTemplate.4.0");
testActiveXObject("MSXML2.FreeThreadedDOMDocument");
testActiveXObject("ADODB.Stream");
testActiveXObject("MSXML2.ServerXMLHTTP");
testActiveXObject("MSXML2.ServerXMLHTTP.4.0");
testActiveXObject("MSXML2.ServerXMLHTTP.6.0");
testActiveXObject("MSXML2.XMLHTTP");
testActiveXObject("Persits.Upload");
testActiveXObject("WScript.Network");
testActiveXObject("WScript.Shell");
testActiveXObject("ADODB.Connection");
testActiveXObject("ADODB.Recordset");
testActiveXObject("CDO.Message");
testActiveXObject("CDONTS.NewMail");
Response.Write("\r\n\r\n");
Response.Write("SERVERVARIABLES:\r\n");
Response.Write("===============:\r\n");
var objOutput = new Array();
for (var objItem = new Enumerator(Request.ServerVariables); !objItem.atEnd(); objItem.moveNext()) {
var strKeyName = objItem.item();
var strKeyValue = Request.ServerVariables(strKeyName).Count() ? Request.ServerVariables(strKeyName).Item(1) : "";
objOutput.push(Server.HTMLEncode(strKeyName) + ": " + Server.HTMLEncode(strKeyValue) + "\r\n");
}
Response.Write(objOutput.join(""));
%>
<%
Response.CharSet = "utf-8";
Response.ContentType = "text/plain";
Response.Buffer = true;
function testActiveXObject(strObjectName) {
var blnSuccess = false;
try {
var test = new ActiveXObject(strObjectName);
test = null;
blnSuccess = true;
}
catch (err) {
}
var whitespace = " ";
Response.Write(strObjectName + ":" + whitespace.substring(strObjectName.length + 1) + blnSuccess + "\r\n")
}
Response.Write("BASIC:\r\n");
Response.Write("=====:\r\n");
Response.Write("ScriptEngine: " + ScriptEngine() + "\r\n");
Response.Write("Version: " + ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion() + "." + ScriptEngineBuildVersion() + "\r\n");
Response.Write("Date: " + new Date().toGMTString() + "\r\n");
Response.Write("Timezone: UTC+" + new Date().getTimezoneOffset()/-60 + "hrs\r\n");
Response.Write("\r\n\r\n");
Response.Write("COMPONENTS:\r\n");
Response.Write("==========:\r\n");
testActiveXObject("Scripting.FileSystemObject");
testActiveXObject("Microsoft.XMLHTTP");
testActiveXObject("MSXML.DOMDocument");
testActiveXObject("MSXML2.DOMDocument");
testActiveXObject("MSXML2.DOMDocument.3.0");
testActiveXObject("MSXML2.DOMDocument.4.0");
testActiveXObject("MSXML2.DOMDocument.6.0");
testActiveXObject("MSXML2.XSLTemplate");
testActiveXObject("MSXML2.XSLTemplate.4.0");
testActiveXObject("MSXML2.FreeThreadedDOMDocument");
testActiveXObject("ADODB.Stream");
testActiveXObject("MSXML2.ServerXMLHTTP");
testActiveXObject("MSXML2.ServerXMLHTTP.4.0");
testActiveXObject("MSXML2.ServerXMLHTTP.6.0");
testActiveXObject("MSXML2.XMLHTTP");
testActiveXObject("Persits.Upload");
testActiveXObject("WScript.Network");
testActiveXObject("WScript.Shell");
testActiveXObject("ADODB.Connection");
testActiveXObject("ADODB.Recordset");
testActiveXObject("CDO.Message");
testActiveXObject("CDONTS.NewMail");
Response.Write("\r\n\r\n");
Response.Write("SERVERVARIABLES:\r\n");
Response.Write("===============:\r\n");
var objOutput = new Array();
for (var objItem = new Enumerator(Request.ServerVariables); !objItem.atEnd(); objItem.moveNext()) {
var strKeyName = objItem.item();
var strKeyValue = Request.ServerVariables(strKeyName).Count() ? Request.ServerVariables(strKeyName).Item(1) : "";
objOutput.push(Server.HTMLEncode(strKeyName) + ": " + Server.HTMLEncode(strKeyValue) + "\r\n");
}
Response.Write(objOutput.join(""));
%>