in reply to Re^2: telnet from a cisco telnet
in thread telnet from a cisco telnet

Certainly not. This is not a code writing service. In Re^3: telnet from a cisco telnet you have shown the output. Now, try to fix it step by step (e.g. use my). You can add use warnings; and use diagnostics; for better explanations of the error messages and warnings you get.
Come back with a fixed version of your code if you still have problems. But please, show some own effort first. Thanks.

Replies are listed 'Best First'.
Re^4: telnet from a cisco telnet
by Kumar Mantri (Novice) on Aug 09, 2011 at 11:31 UTC

    finally it worked without errors but i got this output "command timed-out at C:\Users\Kumar\telnet.pl line 7" where did i go wrong?

    use strict; use Net::Cisco; use Net::Telnet(); my $t =Net::Telnet::Cisco->new(Host=>'10.0.0.1'); my @output=0; $t->login('9190','KUM@R425'); $t->cmd("telnet 192.168.203.23"); $t->waitfor('/:$/i'); $t->cmd("public"); $t->waitfor('/>$/i'); @output=$t->cmd("show system"); open(CONFIG,">config.txt"); print CONFIG "@output\n"; close(CONFIG); $t->close;
      i know that the problem is at line 7
      $t->cmd("telnet 192.168.203.23");
      is that above statement is a right way to telnet from this?

        I don't think so. You get a timeout either because the connection to 192.168.203.23 is broken, or because the cmd() successfully opens a telnet connection which gets no further input. Try print() instead of cmd() and then search ( waitfor() ) the prompts and deliver the correct responses. A combination of print("telnet ...") and login() might also work, saving you some work. Take care if you are connecting to some non-UNIX hosts (see Net::Telnet : Connecting to a Remote MS-Windows Machine).

        I would attack this problem by manually logging into the first host using a telnet client (telnet or PuTTY) and then login to the second host. While doing so, I would write down every significant prompt (username, password, etc.) and the correct response to it. That way, I would gain certainty that my approach would work in principle. Then, I have everything at hand for scripting this task.

        Next step is to detect error-conditions (ill. or expired password, connectivity problems, timeouts, etc.), so your script becomes more robust.

        Update (in response to 919601, 919606):
        Try @output=$t->cmd('show system'); instead of @output=$t->print('show system');
        If you get a timeout, use cmd() with a proper Prompt => '....' argument.
        Maybe you want @output = $t->cmd(String => "show system", Prompt => '/]> /'); ?