Perl net::telnet : komme nicht auf einen Router drauf

drmaniac

Lt. Junior Grade
Dabei seit
Jan. 2005
Beiträge
481
Hi,

ich will auf einen Zyxel Router (Arcor WLAN 200) drauf um den sync wert auszulesen, aber es streikt schon beim einloggen...


Mit dem Script hier

#!/usr/bin/perl -w
use net::Telnet;
$telnet = new Net::Telnet ( Timeout=>10,
Errmode=>'die');
$telnet->open("unixserver");
$telnet->login('name', 'passwort');
@output = $telnet->cmd('ls -l');
$telnet->close("unixserver");
foreach $temp (@output) {
print $temp;
}

komme ich ohne Probleme auf einen richtigen (unix) Server drauf mit telnet.

Das Problem beim Router ist, dass der sich nicht mit username und passwort login meldet, sondern nur mit "PASSWORD:".

Und das scheint das net::telnet nicht zu verstehen.

Ich habe mit verschiedenen Sachen experementiert:


Im Dos Fenster:
telnet xxx.xxx.xxx.xxx
Verbindungsaufbau zu xxx.xxx.xxx.xxx
PASSWORD:


es fehlt also der Username, ich nehme an, dass das perl verwirrt?


Ich habe zwei Ansätze versucht:

use Net::Telnet;
my $conn = new Net::Telnet (
Host => 'xxx.xxx.xxx.xxx',
Port => 23
);
$conn->open();
print "Waitfor Password:..\n";
$conn->waitfor('/Password/');
print "Try to login ....\n";
$conn->login('user', 'passwort');
$conn->close;


Ergibt als Ausgabe:

Waitfor Password: ..
Try to login ....
( Er hat also erkannt, dass da PASSWORD: ausgegeben wird?!)
timed-out waiting for login prompt


dann habe ich versucht


$conn->open();
print "Waitfor Password:..\n";
$conn->waitfor('/Password/');
print "Try to login ....\n";
$conn->cmd("daspasswort");
$conn->close;


Ergebnis:

Waitfor Password:..
Try to login ....

command timed-out at script line xxx (wo ich per cmd das passwort übergeben will)

Und als letztes hab ich mal

$prompt = "/Password:/";
$telnet = new Net::Telnet ( Timeout=>4,
Errmode=>'die',
Prompt => $prompt);


versucht, auch ohne Ergebnis... ich sehe halt nicht wirklich, wie der "prompt" des Router ist...
Das ganze versuche ich nun schon Stunden

Habt ihr irgend eine Idee? Gehen muss es, es gibt nämlich eine Freeware namens ZyXEL Prestige Monitor, und der kann sich immerhin auch connecten und den Router auslesen...
 
Top