PDA

View Full Version : http to telnet software or gateway


retsam
09-04-07, 01:07 AM
anyone know of a good software package that will allow me to set up a gateway to pass telnet commands over http?

evilghost
09-04-07, 09:38 AM
You could do it with PHP (with fsockopen) or Perl (with Net::Telnet).

Here's some Perl code to monitor my DSL modem's sync and it uses Net::Telnet


#!/usr/bin/perl -w

use Net::Telnet;
use POSIX qw(setsid);

&daemonize;

sub daemonize {
chdir '/' or die "Can't chdir to /: $!";
open STDIN, '/dev/null' or die "Can't read /dev/null: $!";
open STDOUT, '>>/dev/null' or die "Can't write to /dev/null: $!";
open STDERR, '>>/dev/null' or die "Can't write to /dev/null: $!";
defined(my $pid = fork) or die "Can't fork: $!";
exit if $pid;
setsid or die "Can't start a new session: $!";
umask 0;
}

$telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die', Prompt=>'/>$/i');
$telnet->open('172.16.0.1');

$telnet->waitfor('/User : $/i');
$telnet->print('root');
print "Sent username of 'root'\n";

$telnet->waitfor('/Password : $/i');
$telnet->print('my_root_password');
print "Sent password\n";

$telnet->waitfor('/=>$/');
print "Got prompt\n";

$telnet->print('td prompt');
$telnet->waitfor('/Password : $/i');
$telnet->print('my_enable_password');
print "Sent enable password\n";

$telnet->waitfor('/>$/');
print "Got enable prompt\n\n";

print "Going golden\n";
$telnet->cmd('golden');

while(1){
print localtime() . " Polling modem state: ";
@output = $telnet->cmd('modem_state');
foreach $line (@output){
$line =~ s/\x0a//gs;
$line =~ s/\x0d//gs;

if($line =~ m/The modem is in /i){
$line =~ s/The modem is in //g;
print $line . "\n";
if($line =~ m/SHOWTIME_L/i){
}else{
open(LOG,">>/dsl/dsl.log");
print LOG localtime() . "\t".$line."\n";
close(LOG);
}
}
}

sleep(1);
}

$telnet->close;