ActiveSocket Toolkit Add network capabilities to any Windows or .NET application

Quicklinks


PHP Telnet Sample Source Code

ActiveSocket provides an easy-to-use development interface 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 can be well integrated into PHP environments. This document describes how ActiveSocket can be integrated into PHP projects.

Step 1: Download and install ActiveSocket

Download ActiveSocket from the ActiveXperts Download Site and start the installation. The installation guides you through the installation process.

Step 2: Create a form

To execute the telnet commands the user is going to give, you need to get the command from the user. We're doing that using a form. In this form we'll work with 4 fields.

  • One field for the command we're going to give (name : command)
  • One field for the location we want to send the command at (name : server)
  • One field for the port we want to send the command at (name : port)
  • And one field for the logfile (name : logfile)

You can make it look like this:

Telent PHP

(Click on the picture to enlarge)

Create a form with the names listed above. To trigger the commands, we're going to set a variable in the url. In this sample we're using the variable "execute". You can fill in this variable using the action propertie in the <form> tag.

<form action=index.php?execute=ready>

Step 3: Create the a function that executes the commands

Once we have the information from the user, we need to execute it. To do that, you need to call to network-component. You can do that creating a new COM object in you PHP code. If the com object is created, you can execute the commands.

Use the following PHP code to create the object:

function execute_command($port, $command, $server, $logfile){
    //create the object
    $objSocket = new COM ("ActiveXperts.Tcp");
    
    //set the logfile
    $objSocket->logfile = $logfile;
    
    //connect the server
    $objSocket->Connect($server, $port);
    check_for_errors($objSocket->lasterror, $objSocket->getErrorDescription($objSocket->lasterror));
    //recieve the welcome message, we don't want to display that...
    $objSocket->ReceiveString();
    check_for_errors($objSocket->lasterror, $objSocket->getErrorDescription($objSocket->lasterror)); 
    
    //now execute the command
    $objSocket->SendString($command);
    check_for_errors($objSocket->lasterror, $objSocket->getErrorDescription($objSocket->lasterror)); 
    //wait 1 second, so the command can be executed
    $objSocket->Sleep(1000);
    
    //get the results
    echo "<h2>activeSocket<br>sample with php</h2>";
    echo "<table border=0>";
    echo "<tr>";
    echo "   <td colspan=2 class=red>Results:</td>";
    echo "</tr>";
    echo "<tr>";
    echo "   <td colspan=2>";
    echo nl2br($objSocket->ReceiveString());
    echo "   <br><br></td>";
    echo "</tr>";
    echo "<tr>";
    echo "   <td colspan=2 class=red>Execute another command:</td>";
    echo "</tr>";
    echo "<tr>";
    echo "   <td valign=top>Command</td>";
    echo "   <td valign=top>";
    echo "         <form method=post action=" . $SERVER['PHP_SELF'] . "?execute=ready>";
    echo "         <input type=text name=command>";
    echo '         <input type=hidden name=server value="' . $server . '">';
    echo '         <input type=hidden name=port value="' . $port . '">';
    echo '         <input type=hidden name=logfile value="' . $logfile . '">';	 
    echo '         <input type=submit value="Submit!">';	 
    echo "     </form>";
    echo "   </td>";
    echo "</tr>";	 
    echo "</table>";
    
    //check for errors
    check_for_errors($objSocket->lasterror, $objSocket->getErrorDescription($objSocket->lasterror)); 
    
    //close objSocket
    $objSocket->Disconnect;
}

Step 4: Errorchecking

It is also possible to display errors that occure using our software. In the code displayed above, we're doing that using the following code:

check_for_errors($objSocket->lasterror, $objSocket->getErrorDescription($objSocket->lasterror)); 

The check_for_errors() function calls to this function:

function check_for_errors($errorno, $errormessage){
   //if the errornumber isn't 0 (succes), we're going to display the errornumber and message
   if($errorno !=0){
      echo "<script>";
      echo "   alert('" . $errorno . ":" . $errormessage . "');";
			echo "   window.navigate('" . $_SERVER['PHP_SELF'] . "');";
      echo "</script>";
   }
}

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.