1

我正在尝试创建一个 shell/bash 脚本来对多播地址进行 telnet 测试。我目前有以下内容:

telnet <ip_address> <port_number>

但是,这挂起:

<server_name>% ./telnet_test.sh
Trying <ip_address>...
Connected to <ip_address>.
Escape character is '^]'.
//Hangs here for a few seconds...
Connection to <ip_address> closed by foreign host.

如何测试多播地址并在成功后立即返回,这样我就不必等到连接被外部主机关闭。

我需要在同一个脚本中测试多个地址。

编辑:

我应该提到我是在一个有严格控制的防火墙的银行网络上,我不能安装 netcat。

此测试的目的只是查看我是否可以从当前主机连接到该路由。

4

2 回答 2

2

改为使用netcat
-z- 扫描监听守护进程。
-w 3- 3秒后超时

#!/bin/bash

host_list="www.google.com www.stackoverflow.com"
port=80

for host in $host_list; do
    nc -z -w 3 $host $port > /dev/null 2>&1
    if [[ $? = 0 ]]; then
        printf "%s%s%s\n" " [$host:" "UP" "]"
    else
        printf "%s%s%s\n" " [$host:" "DOWN" "]"
    fi
done
于 2013-08-15T20:11:57.873 回答
0

如果您已expect安装,则可以使用它来控制您的telnet

#!/usr/bin/except
spawn telnet <ip address> <port number>
set timeout 10
expect "Connected to"
send "exit\r"

检查man expect其他一些文章以获取更多信息。

于 2013-09-18T08:24:38.593 回答