SNMP can be well integrated into HTML environments. This document describes how ActiveSocket's SNMP objects can be integrated into HTML projects.
ActiveSocket is compliant with SNMP v1 and SNMP v2c. ActiveSocket automatically detects which SNMP version is running on the remote agent. The SDK supports different SNMP data types, including:
The following operations are supported:
When using HTML, there are two ways to install the ActiveSocket Toolkit on a client PC:
You can install the ActiveSocket Toolkit automatically using the following HTML code on top of the HTML page:
<head> <object codeBase="http://www.activexperts.com/files/network-component/3.1/asocket.cab" classid="CLSID:4F986D6D-E04F-4BEE-B8C7-8252577CB282" lt;/object> </head>
The ActiveSocket Toolkit will be installated automatically. The user will be asked to confirm the installation, because the DLL is coming from an untrusted site (www.activexperts.com).
There are two ways to avoid prompting:
On each client PC, download the ActiveSocket Toolkit from the ActiveXperts Download Site and start the installation. The installation guides you through the installation process.
Create a new HTML script using your favorite editor. You can simply use notepad. However, a JavaScript editor is recommended, so you can browse through objects, objects properties and object functions. Add the following HTML code to the header section of your HTML code:
<script type="text/javascript" > </script>
You're now able to write a more advanced scripts to communicate using the ActiveSocket Toolkit.
To query an SNMP agent using JavaScript,you need to declare and create the following ActiveSocket object:
To create the ActiveSocket objects, add the following lines of codes on top of your JavaScript code (directly after the script tag) :
var objSnmpManager = new ActiveXObject ( "ActiveXperts.SnmpManager" ); var objConstants = new ActiveXObject ( "ActiveXperts.ASConstants" );
You can now query SNMP OID's. The following VBScript code shows how to execute an SNMP query on a remote SNMP agent from an HTML form:
<html>
<head>
<title>ActiveSocket HTML/JavaScript Sample</title>
<object codeBase="http://www.activexperts.com/files/network-component/cab/3.1/asocket.cab" classid="CLSID:4F986D6D-E04F-4BEE-B8C7-8252577CB282" </object>
<script type="text/javascript" >
var objSnmpManager = new ActiveXObject ( "ActiveXperts.SnmpManager" );
var objConstants = new ActiveXObject ( "ActiveXperts.ASConstants" );
function Init ()
{
objSnmpManager.Initialize ();
}
function UnInit ()
{
objSnmpManager.Shutdown ();
}
function Get ()
{
objSnmpManager.Open ( textSnmpAgent.value, textSnmpCommunity.value );
if ( objSnmpManager.LastError == 0 )
{
var objSnmpObject = objSnmpManager.Get ( textOid.value );
if ( objSnmpManager.LastError == 0 )
{
textValue.value = objSnmpObject.Value;
DisplayType ( objSnmpObject.Type );
}
}
textResult.value = objSnmpManager.LastError + " : " + objSnmpManager.GetErrorDescription ( objSnmpManager.LastError );
objSnmpManager.Close ();
}
function DisplayType (lType)
{
switch ( lType )
{
case objConstants.asSNMP_TYPE_INTEGER32: textType.value = "asSNMP_TYPE_INTEGER32"; break;
case objConstants.asSNMP_TYPE_BITS: textType.value = "asSNMP_TYPE_BITS"; break;
case objConstants.asSNMP_TYPE_OCTETSTRING: textType.value = "asSNMP_TYPE_OCTETSTRING"; break;
case objConstants.asSNMP_TYPE_NULL: textType.value = "asSNMP_TYPE_NULL"; break;
case objConstants.asSNMP_TYPE_OBJECTIDENTIFIER: textType.value = "asSNMP_TYPE_OBJECTIDENTIFIER"; break;
case objConstants.asSNMP_TYPE_SEQUENCE: textType.value = "asSNMP_TYPE_SEQUENCE"; break;
case objConstants.asSNMP_TYPE_IPADDRESS: textType.value = "asSNMP_TYPE_IPADDRESS"; break;
case objConstants.asSNMP_TYPE_COUNTER32: textType.value = "asSNMP_TYPE_COUNTER32"; break;
case objConstants.asSNMP_TYPE_GAUGE32: textType.value = "asSNMP_TYPE_GAUGE32"; break;
case objConstants.asSNMP_TYPE_TIMETICKS: textType.value = "asSNMP_TYPE_TIMETICKS"; break;
case objConstants.asSNMP_TYPE_OPAQUE: textType.value = "asSNMP_TYPE_OPAQUE"; break;
case objConstants.asSNMP_TYPE_COUNTER64: textType.value = "asSNMP_TYPE_COUNTER64"; break;
case objConstants.asSNMP_TYPE_UNSIGNED32: textType.value = "asSNMP_TYPE_UNSIGNED32"; break;
}
}
</script>
</head>
<body OnLoad="Init()" OnUnload="UnInit" >
<font face="sans-serif" size="2">
<hr size="1" color="#707070">
<b><font size="4">ActiveXperts ActiveSocket HTML/JavaScript Sample</font></b>
<br>
<br>
Get SNMP values from an SNMP agent.
<br>
<br>
<hr size="1" color="#707070">
<br>
<table border="0" bgcolor="#f0f0f0" ID="table1" >
<tr>
<td width="120" valign="top">SNMP Agent:</td>
<td width="450">
<input size="50" type="text" id="textSnmpAgent" value="DELL09" >
</select>
</td>
</tr>
<tr>
<td valign="top">SNMP Community:</td>
<td>
<input size="50" type="text" id="textSnmpCommunity" value="public" >
</td>
</tr>
<tr>
<td valign="top">Object ID:<br>
</td>
<td>
<input size="50" type="text" id="textOid" value="system.sysDescr.0" >
<br>
<br>
</td>
</tr>
<tr>
<td vAlign="top">Value:</td>
<td>
<input size="50" type="text"" id="textValue" value="" >
</td>
</tr>
<tr>
<td vAlign="top">Type:</td>
<td>
<input size="50" type="text"" id="textType" value="" >
</td>
</tr>
<tr>
<td vAlign="top">Result:</td>
<td>
<input size="50" type="text" id="textResult" value="" >
</td>
</tr>
<tr>
<td></td>
<td>
<input type="button" onclick="Get()" value="Get" style="width: 100px;" >
</td>
</tr>
</table>
<br>
<hr size="1" color="#707070">
</body>
</html>
There are many working samples included with the product. You can also find them on the ActiveXperts FTP site: ftp.activexperts-labs.com/samples/asocket.