Telnet connectivity query

Posted on 2009-05-19
Last Modified: 2012-08-13
Hi All,
I want to check telnet connectivity for a series of 50 IPs.
I tried to automate the tasks using a script like the following:
a=`echo pwd | telnet IP1`
a=`echo pwd | telnet IP2`
a=`echo pwd | telnet IP3`
a=`echo pwd | telnet IP50`

When I run the above script, it usually returns the chracaters "Connection closed by foreign host" for each IP.
Sometimes it returns different messages like "Connection refused", "No route to Host" etc.

But the problem occurs when the telnet fails altogether for a IP. If the telnet fails for a particular IP, the script waits for 3 minutes and returns the characters "telnet failed" and then the script is terminated.
Is there any way I can make the script return the character "telnet failed" within, say 3 seconds, for every IP it fails to connect to.
In other words, if I just run the command "telnet IP" on UNIX prompt and the telnet fails then I should get back "telnet failed" message within 3 seconds instead of 3 mins.
Question by:subratoc
  • 2
LVL 10

Accepted Solution

lanboyo earned 500 total points
ID: 24425518
When the telnet is failing completely, it is often due to talking to a firewalled IP that does not return a port rejected icmp message or that icmp message is swallowed somewhere along the ling.

Variable assignment will not allow the script to proceed until it is complete.

To add a layer of complexity you can rewrite the script in the scripting language expect. Fairly easy to learn for automating usually interactive processes.

The script would then be something like:

set timeout 3
spawn telnet $IP
expect  -timeout {do this ; close ; wait ; exit 0} "*Password:" { do this ; send "$PASSWORD\r"}

... And so on.

You might be able to simply do this with temp files....

echo password  | telnet >  /tmp/tmp.$$ 2>&1 &
sleep 1
A=`cat /tmp/tmp.$$`
if  ps -p $! 1> /dev/null 2>&1 ; then
   sleep 2
   A=`cat /tmp/tmp.$$ `
   kill $!  1> /dev/null 2>&1
echo password | telnet > /tmp/tmp.$$ 2>&1  &
sleep 1
B=`cat /tmp/tmp.$$`
if  ps -p $! 1> /dev/null 2>&1 ; then
   sleep 2
   B=`cat /tmp/tmp.$$`
   kill $!  1> /dev/null 2>&1
#kill -9 $! 1> /dev/null 2&1
echo cisco | telnet > /tmp/tmp.$$  2>&1  &
sleep 1
C=`cat /tmp/tmp.$$`
if  ps -p $! 1> /dev/null 2>&1 ; then
   sleep 2
   C=`cat /tmp/tmp.$$`
   kill $!  1> /dev/null 2>&1
rm /tmp/tmp.$$  1> /dev/null  2>&1
echo "BEGIN A====>$A<===END A"
echo =========================================
echo "BEGIN B====>$B<===END B"
echo =========================================
echo "BEGIN C====>$C<===END C"

With these results...

BEGIN A====>Trying
Connected to
Escape character is '^]'.
Connection closed by foreign host.<===END A
BEGIN B====>telnet: Unable to connect to remote host: Connection refused
Trying<===END B
BEGIN C====><===END C

LVL 10

Expert Comment

ID: 24425530
expect is preferable, as it would allow you to check for good and bad passwords.

Author Closing Comment

ID: 31582952
Thanks, lanboyo. It worked perfectly!

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
telnet emulation issues with SCO 17 282
automatic ssh key authentication 4 101
configuration questions on my cisco router 11 109
ssh setup on Cisco swith 11 42
We all know how boring and exhausting it is to transfer huge web projects developed locally to a webserver simply via FTP. The File Transfer Protocol is a really nice solution if you need to transfer small amounts of files, but if you're plannin…
When it comes to security, there are always trade-offs between security and convenience/ease of administration. This article examines some of the main pros and cons of using key authentication vs password authentication for hosting an SFTP server.
Viewers will learn how to properly install and use Secure Shell (SSH) to work on projects or homework remotely. Download Secure Shell: Follow basic installation instructions: Open Secure Shell and use "Quick Connect" to enter credentials includi…
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now