Linux 使用脚本执行 Telnet 批量测试端口是否开通

文章介绍了三种端口测试方法,包括在超时时间内使用telnet检测网络服务是否开放,通过bash脚本批量测试多个IP端口并记录结果。脚本示例展示了如何编写和运行一个检查端口状态的脚本,以及输出不同情况下的结果。
摘要由CSDN通过智能技术生成

一、测试方法:

1、方法 1 :在端口不通时超时时间较长

echo -e "\n"|telnet $CHECK_IP $CHECK_PORT|grep "Connected to\|Escape character" >/dev/null

检查 $? 获取结果

通过以上命令测试,如果端口开放则返回 0 ,否则为 1。

2、方法 2 :在端口不通时超时时间较长

echo ""|telnet $CHECK_IP $CHECK_PORT 2>/dev/null|grep "\^]"|wc -l

通过以上命令测试,如果端口开放则返回 1 ,否则为 0。

3、方法 3 :该方法最佳( 在设置的超时时间范围之内 )

echo quit|timeout --signal=9 {timout_second} telnet {host} {port} 2>/dev/null|grep "\^]"|wc -l

通过以上命令测试,如果端口开放则返回 1 ,否则为 0。

二、脚本示例:

1、脚本内容:

#!/bin/bash
check_telnet()
{
local lv_ip_and_port
local lv_ip
local lv_port
local lv_portFlag

for lv_ip_and_port in $(cat /tmp/ip_port_file.txt)
do
    lv_ip=$(echo $lv_ip_and_port|awk -F: '{print $1}')
    lv_port=$(echo $lv_ip_and_port|awk -F: '{print $2}')    
    lv_portFlag=`echo quit|timeout --signal=9 3 telnet $lv_ip $lv_port 2>/dev/null|grep "\^]"|wc -l`
    if [ $lv_portFlag -eq 0 ];then
        echo 1
        exit
    fi
done
echo 0
}

check_telnet > result.log

2、端口文件 ips_file 内容:

#请使用ip:port 或者 域名:port 的格式编辑以下内容;
#如果是一个列表,可以使用#对不进行测试的IP进行注释
192.168.197.10:11521
192.168.197.10:11522
192.168.197.100:11522

3、输出结果示例( 如果端口开放则返回 1 ,否则为 0 ):

### 端口开放

root@racdb1:/root>lv_portFlag=`echo quit|timeout --signal=9 3 telnet 192.168.197.10 11521 2>/dev/null|grep "\^]"|wc -l`             
root@racdb1:/root>echo $lv_portFlag
1
root@racdb1:/root>

### 端口未开放

root@racdb1:/root>lv_portFlag=`echo quit|timeout --signal=9 3 telnet 192.168.197.10 11522 2>/dev/null|grep "\^]"|wc -l` 
root@racdb1:/root>echo $lv_portFlag
0
root@racdb1:/root>

### IP 不可达

root@racdb1:/root>lv_portFlag=`echo quit|timeout --signal=9 3 telnet 192.168.197.100 11522 2>/dev/null|grep "\^]"|wc -l`
root@racdb1:/root>echo $lv_portFlag
0
root@racdb1:/root>
 

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值