批量检测机器是否可达

准备一个配置文件 ip.txt ,每一行记录分别是 ip port(或只有ip字段,port统一命令行读取),中间用空格间隔

将下面 c++ 代码编译生成执行文件 testconn

#include <stdio.h>
#include <unistd.h>

main(int argc, char** argv)
{
    if (argc != 3)
        _exit(0);
 
    int fd[2];
 
    alarm(1);
    pipe(fd);
    close(fd[1]);
    dup2(fd[0], STDIN_FILENO);
    dup2(fd[0], STDERR_FILENO);
 
    execlp("telnet", "telnet", argv[1],argv[2], 0);
}

增加脚本处理,从文件读入地址以及端口,然后进行连接测试返回值

while read line
do
    result=`timeout 1 ./testconn $line|grep Connected|wc -l`
    echo "Now test:$line result:$result"
done < ./ip.txt

也可以直接使用这个脚本用 telnet 进行处理,timeout 设置稍微长一点,如果时间过短的话,可能导致连接还没建立就退出了

while read line
do
    result=`echo Quit|timeout 3 telnet $line 2>/dev/null|grep Connected|wc -l`
    echo "Now test:$line result:$result"
done < ./ip.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值