Telnet Software Development Component for PHP for Windows

ActiveSocket is a Network Communication component for Windows Developers. It runs on any 32 bit and 64 bit Windows Platform, incl. Windows 7, Windows 2008, Windows 2003, Windows 2000, Windows Vista and Windows XP.
It features many IP protocols, incl.: SSH (Secure Shell), RSH (Remote Shell), HTTP(s), FTP, ICMP Ping, NTP, SNMP v1/v2c (Get,GetNext,Set), SNMP MIB translation, SNMP Trap Sender, SNMP Trap Receiver, Telnet, DNS, TCP, UDP, IP-to-Country, Wake-On-LAN and more. Samples are included many popular development platforms, incl. Visual C# .NET, Visual Basic .NET, ASP .NET, Visual Basic, Visual C/C++, ASP, Java, Javascript, PHP, Borland Delphi, Borland C++ Builder, ColdFusion.

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: ICMP, HTTP and HTTPs with support for proxy servers and secure web sites, Telnet, NTP time protocol, RSH remote shell script interface, SNMP (Simple Network Management Protcol), SNMP Traps, Sockets (TCP and UDP), WOL (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:

(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 activSocket. 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/asocket.