Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]4395[/thread]

telnet commandos absetzen

Leser: 3


<< |< 1 2 >| >> 12 Einträge, 2 Seiten
Rambo
 2006-01-27 13:45
#37025 #37025
User since
2003-08-14
803 Artikel
BenutzerIn

user image
hallo zusammen,

folgendes script setzt das erste kommando (help) richtig ab
und ich bekomme auch die antwort aber schon das zweite
wird nicht abgesetzt.
finde weder hier noch bei google eine erklärung dafür.
wo mache ich den fehler?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use strict;
use warnings;
use Net::Telnet();


my $host = '10.10.1.5';

my $t = new Net::Telnet (Timeout => 10,
                     Input_log => *STDOUT,
                     Prompt => '/bash\$ $/'
                    );
$t->open("$host");
print STDERR "connected...\n";
my @lines = $t->cmd("help");
print @lines;
       
@lines = $t->cmd("cli help");
print @lines;

beide kommandos sind so richtig geschrieben und
funktionieren über telnet.

merci

rambo
renee
 2006-01-27 13:55
#37026 #37026
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Gibt es Fehlermeldungen??

Vielleicht ein waitfor einsetzen?? Und mach mal Fehlerbehandlung, verwende vielleicht auch ein Output_log...

Schau Dir vielleicht auch mal http://board.perl-community.de/cgi-bin....;t=2244 an...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Rambo
 2006-01-27 14:55
#37027 #37027
User since
2003-08-14
803 Artikel
BenutzerIn

user image
habe das script angepast und die fehler meldung ist lediglich
server>command timed-out at E:\PERL_PRGS\telnet\rh_t2.pl line 15
es sieht so aus als ob er einfach den 2ten befehl nicht abschickt aber warum?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use strict;
use warnings;
use Net::Telnet();

my $host = '10.10.11.5';

my $t = Net::Telnet->new(Host => $host,
Timeout => 10,
Input_log => *STDOUT,
Output_log => *STDOUT,
) or die Net::Telnet::error();

$t->cmd("help") or die $t->error; #das ist Zeile 15
$t->waitfor('/SW2K-FRAFAC-P4_4750>/') or die $t->error;

$t->cmd("cli help") or die $t->error;
$t->waitfor('/SW2K-FRAFAC-P4_4750>/') or die $t->error;


merci
rambo

Ps. @renee was machen die waldbrände, bist du von betrofffen oder sind sie in deiner nähe?
Rambo
 2006-01-27 16:07
#37028 #37028
User since
2003-08-14
803 Artikel
BenutzerIn

user image
ich habe das problem jetzt gelöst und habe ein weiteres.
wie kann ich es abfangen das wenn jemand nur ENTER/RETURN drückt
ohne eine eingabe gemacht zu haben das Program nicht weiter arbeitet?
ich hatte folgendes probiert
Code: (dl )
1
2
3
4
5
6
$input = lc $input;
if ($input ne "")
{
$t->print("$input");
$line = $t->getline;
}

was sber nicht geht.
wenn das prog fertig ist werde ich es noch posten.

merci

rambo
Taulmarill
 2006-01-27 16:11
#37029 #37029
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
ich bin mir nicht sicher, was genau du meinst, aber ich rate einfach mal :)

Code: (dl )
1
2
3
4
5
6
7
8
9
10
use strict;
use warnings;

my $input = "";

while ( $input eq "" ) {
print "input: ";
$input = <STDIN>;
chomp $input;
}
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
renee
 2006-01-28 02:33
#37030 #37030
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@rambo: kannst Du mal posten, wie Du das timeout-Problem geloest hast?? Das koennte im anderen Thread weiterhelfen...

Nein, die grossen Waldbraende sind ueber 1000km von hier entfernt. Mich wundert es seit meinem Aufenthalt hier, dass die deutschen Medien anscheinend ziemlich viel ueber die Waldbraende in Australien berichten...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Rambo
 2006-01-30 12:08
#37031 #37031
User since
2003-08-14
803 Artikel
BenutzerIn

user image
es lag nicht wirklich am timeout denke ich auch wenn das
als fehler kommt.
hier der erste teil des codes.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
use strict;
use warnings;
use Net::Telnet();

my $host = '10.10.1.5';
my $input = "";

my $t = Net::Telnet->new(Host       => $host,
                        Timeout    => 15,
                        Input_log  => *STDOUT,
                        Output_log => *STDOUT,
                       ) or die Net::Telnet::error();

$t->print("help");
my $line = $t->getline;
&connected;

sub connected
  {
   $t->waitfor(-match => '/SERVER_4711>/',
               -errmode => "return",
              ) or die "problem connecting to host: ",
   $t->lastline;
   #while ($input eq "")
   #     {
          $input = <STDIN>;
          $input = lc $input;
          chomp $input;
          $t->print("$input");
          $line = $t->getline;
          $t->lastline;
    #    }
         &connected;
  }

leider funktioniert das mit der while schleife so noch nicht
da er nach der ersten eingabe einfach nichts mehr annimmt
aber ich bastel mal weiter.

merci.

rambo

ps. das mit den bränden ist ja leider jedes jahr so in australien.\n\n

<!--EDIT|Rambo|1138615742-->
Rambo
 2006-01-30 16:51
#37032 #37032
User since
2003-08-14
803 Artikel
BenutzerIn

user image
ich hab noch eine frage hierzu.
ich benötige die daten welche der telnet server zurück gibt
in einem array.
wie muss ich dies machen?
in meinem beispiel bekomme ich als ausgabe des arrays nur
die erste zweile von vielen.
Code: (dl )
1
2
3
$t->print("help");
push my @line, $t->getline;
print "@line\n";


merci

rambo
renee
 2006-01-31 00:12
#37033 #37033
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
schonmal
Code: (dl )
1
2
3
4
5
my @lines;
while(my $line = $t->getline){
push(@lines,$line);
}
print $_ for(@lines);
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Rambo
 2006-01-31 13:51
#37034 #37034
User since
2003-08-14
803 Artikel
BenutzerIn

user image
das ganze ist wohl ein paar nummern zu gross für mich.
ich wollte eine gui bauen in der ich die telnet ausgaben
ablesen und eingeben kann.
das prob. ist das bei $t->cmd() die ausgaben in die gui
geschrieben werden aber das prompt fehlt und ohne das geht es nicht weiter.
bei $t->print() ist nur die ausgabe auf der commando
ebene zu sehen, es wird nichts in die gui geschrieben.

evtl. müste man in die telnet.pm eingreifen aber das lass ich
lieber.

ich werde noch ein wenig stöbern und probieren evtl. finde ich
noch eine lösung

rambo
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2006-01-27 13:45.