Quicklinks
ActiveSocket provides an easy-to-use development interface (SDK) to a variety of IP protocols. By using ActiveSocket, you can very easily create or enhance applications with network features.
ActiveSocket features the following: DNS, FTP, HTTP, HTTPs, ICMP Ping, IP-to-Country, MSN, NTP, RSH, SCP, SFTP, SNMP v1/v2c (Get, GetNext, Set), SNMP Traps, SNMP MIB, SSH, TCP, Telnet, TFTP, UDP, Telnet, Wake-On-LAN and more.
ActiveSocket is compliant with SNMP versions v1 and v2c. Several SNMP data types are supported, including:
ActiveSocket supports the following SNMP trap features:
ActiveSocket can be well integrated into PHP environments. This document describes how ActiveSocket can be integrated into PHP projects.
IMPORTANT: Make sure that the SNMP Service is installed and running on the machine where ActiveSocket is installed. For more details, please read FAQ items Q1200010 and Q1200015.
Download the ActiveSocket Toolkit from the ActiveXperts Download Site and start the installation. The installation guides you through the installation process.
First of all we need to collect information from the user. If we want to send a trap we need to have a host to send the trap to. We also need to know the community and the SNMP version.
Now that we have that information, we need to find out what kind of trap the user wants to send. We need to know an OID, a message and the type of the message. To get this information create a form that looks like this:
(Click on the picture to enlarge)
To send SNMP traps using PHP, you need to declare and create the following ActiveSocket objects:
On top of your code, declare the following objects:
<?
$objSnmpTrapManager = new COM ("ActiveXperts.SnmpTrapManager");
$objSnmpTrap = new COM ("ActiveXperts.SnmpTrap");
$objSnmpObject = new COM ("ActiveXperts.SnmpObject");
$objConstants = new COM ("ActiveXperts.ASConstants");
?>
Now that we have the information we are able to send an SNMP trap. Now we need to create a trap. If the trap is created it can be sent. The following code shows how to do this:
//****************************************************************************** // function for executing the command //****************************************************************************** function execute_command($host, $community, $version, $type, $message, $oid, $logfile) { //create the objects $objSnmpTrapManager = new COM ("ActiveXperts.SnmpTrapManager"); $objSnmpTrap = new COM ("ActiveXperts.SnmpTrap"); $objSnmpObject = new COM ("ActiveXperts.SnmpObject"); $objConstants = new COM ("ActiveXperts.ASConstants"); //set logfile $objSnmpTrapManager->Logfile = "C:\Snmplogfile.txt"; //initialise SNMP $objSnmpTrapManager->Initialize; //set version $objSnmpTrapManager->ProtocolVersion = $version; //set variable data $objSnmpObject->Clear(); $objSnmpObject->OID = "$oid"; //fetch the type and fill in the right type switch ($type){ //if someone fills in "ipaddress": case "ipaddress": $objSnmpObject->Type = $objConstants->asSNMP_TYPE_IPADDRESS; break; //if someone fills in "number": case "number": $objSnmpObject->Type = $objConstants->asSNMP_TYPE_INTEGER; break; //if someone fills in "string": case "string": $objSnmpObject->Type = $objConstants->asSNMP_TYPE_OCTETSTRING; break; //close the switch } $objSnmpObject->Value = "$message"; //create the trap $objSnmpTrap->Host = $host; $objSnmpTrap->Community = $community; $objSnmpTrap->AddObject ( $objSnmpObject ); //send it $objSnmpTrapManager->Send( $objSnmpTrap ); //and get the error message echo "<b>Errorcode:</b> "; echo $objSnmpTrapManager->Lasterror; echo " : "; echo $objSnmpTrapManager->geterrordescription($objSnmpTrapManager->Lasterror); } //check if the form is submitted if($_GET['method'] != ""){ //execute the command execute_command($_POST['host'], $_POST['community'], $_POST['version'], $_POST['type'], $_POST["value"], $_POST['oid'], $_POST['logfile']); } ?>
There are many working samples included with the product. You can also find them on the ActiveXperts FTP site: ftp.activexperts-labs.com/samples/network-component.