繁体   English   中英

Shell / Bash脚本telnet测试多播地址

[英]Shell/Bash script telnet testing a multicast address

我正在尝试创建一个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。

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

请改用netcat
-z扫描侦听守护程序。
-w 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

如果你expect安装,你可以用它来控制你telnet

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM