OVH Cloud OVH Cloud

telnet entre 2 solaris

2 réponses
Avatar
doff
Hi,

j'essaie de faire un telnet entre 2 solaris 8. A la main, =E7a marche, et=
=20
en perl, marche pas. Pourtant, quand j'utilise mon script pour faire un=20
telnet depuis une solaris 8 sur un routeur cisco, =E7a marche top nickel.

une id=E9e ? le telnetd de solaris est bugg=E9 ??

Voici mon script.

####################### login to sun
sub login_sun
{
print 'Waiting login...'.$EOL;

while ( <$remote> )
{
print ;
if ( /ogin/ ) { last; }
}

print $remote 'root'.$EOL;
print $remote 'xxxxxx'.$EOL;
}


sub connexion
{
$server =3D $_[0];
print 'Connecting to '.$server.$EOL;

$remote =3D IO::Socket::INET->new(Proto=3D>"tcp", PeerAddr=3D>$server,=20
PeerPort=3D>"23") or die "Can't connect to\"$server\"\n";

print 'Connected to '.$server.$EOL;

# set buffering off
$remote->autoflush(1);
}


############### MAIN
connexion($ARGV[0]);
login_sun();

# Sun
print $remote 'ls -l'.$EOL;

while ( <$remote> )
{
print ;
if ( /#/ && !/ls/ ) { last; }
}
close $remote;

Merci =E0 vous.
Doff

2 réponses

Avatar
Ronan Le Hy
doff a écrit:
j'essaie de faire un telnet entre 2 solaris 8. A la main, ça marche, et
en perl, marche pas. Pourtant, quand j'utilise mon script pour faire un
telnet depuis une solaris 8 sur un routeur cisco, ça marche top nickel.


1. 'marche pas' est un peu court. Quelle erreur obtenez-vous ?
2. Je serais vous, je mettrais aussi stdout en autoflush.
3. Et j'utiliserais Net::Telnet, qui est fait pour ça:

#!/usr/bin/perl -w

use strict;
use Net::Telnet;

# adaptez le prompt
my $t = Net::Telnet->new(Prompt=>'/[%>]s*/');

$t->open('ma_machine_distante');
$t->login('lehy', 'toto');

my @lines = $t->cmd('/bin/ls');
print "ls renvoie:n", @lines;

__END__

testé linux->linux, linux->sunos 5.8, sunos5.8->sunos 5.8,
sunos5.8->linux, avec perl 5.5 sur la sun et 5.8.0 sur linux

HTH

--
Ronan

Agreed.
Abigail in clpm

Avatar
Doff
In article <3faa7e43$0$2786$, says...
1. 'marche pas' est un peu court. Quelle erreur obtenez-vous ?


Ouais, effectivement, j'aurais pu détailler un peu.
C'est assez étrange. La connexion tcp se fait bien (un tcpdump en
parallèle le montre) et ça s'arrete là :-(
Plus de traffic dans aucun des 2 sens.

2. Je serais vous, je mettrais aussi stdout en autoflush.


Good idea. Je vais tenter ça.

3. Et j'utiliserais Net::Telnet, qui est fait pour ça:


Merci du tuyau, j'avais pas vu celui la.
Merci beaucoup.


Doff