当前位置: 首页 > news >正文

网络连通性测试

ping

在Linux上,你可以使用Shell脚本编写一个for循环来ping一个网段的地址。下面是一个简单的示例:

#!/bin/bashsubnet="192.168.0"for ((i=1; i<=255; i++)); doip="$subnet.$i"ping -c 1 -W 1 $ip >/dev/null 2>&1if [ $? -eq 0 ]; thenecho "$ip is reachable."elseecho "$ip is unreachable."fi
done

解释一下上述脚本的内容:

  • subnet 变量指定了目标网段,这里以 “192.168.0” 为例。
  • 使用 for 循环遍历 1 到 255 之间的数字,形成完整的 IP 地址。
  • 在循环内部,使用 ping 命令对每个 IP 地址进行一次 ping 测试。
  • -c 1 参数表示只发送一个 ICMP 回显请求包,-W 1 参数表示等待 1 秒钟的超时时间。
  • /dev/null 2>&1 用于将 ping 命令的输出和错误信息重定向到空设备,这样不会在终端显示。
  • 检查 ping 命令的退出状态,如果为 0 表示目标地址可达,输出 “is reachable.”,否则输出 “is unreachable.”。

你可以根据需要修改脚本中的目标网段和其他参数。将上述脚本保存为一个文件(例如 ping_subnet.sh),然后在终端中运行 bash ping_subnet.sh 执行脚本。它将循环ping指定网段内的地址,并显示每个地址的可达性。

telnet

在Linux上,你可以使用Shell脚本编写一个for循环来telnet一个网段的地址并检查是否通。下面是一个示例:

#!/bin/bashsubnet="192.168.0"for ((i=1; i<=255; i++)); doip="$subnet.$i"timeout 1 telnet $ip 22 >/dev/null 2>&1if [ $? -eq 0 ]; thenecho "$ip is reachable."elseecho "$ip is unreachable."fi
done

上述脚本的功能类似前面的ping脚本,但这里使用telnet命令来测试目标地址的可达性。脚本尝试在每个IP地址的22端口上进行telnet连接(这里假设使用SSH连接),并设置1秒钟的超时时间。

  • subnet 变量指定了目标网段,例如 “192.168.0”。
  • 使用for循环遍历1到255之间的数字,形成完整的IP地址。
  • 在循环内部,使用timeout命令来限制telnet命令的执行时间,避免长时间等待。
  • telnet命令的返回状态用于判断目标地址的可达性,如果返回状态为0,则表示连接成功,输出 “is reachable.”,否则输出 “is unreachable.”。

你可以根据需要修改脚本中的目标网段和端口号。将脚本保存为一个文件(例如telnet_subnet.sh),然后在终端中运行 bash telnet_subnet.sh 执行脚本。它将循环telnet指定网段内的地址,并显示每个地址的可达性。

打印

以下是将联通和不通的地址分别打印到两个文本文件的修改示例:

#!/bin/bashsubnet="192.168.0"reachable_file="reachable.txt"
unreachable_file="unreachable.txt"# 清空文本文件
> "$reachable_file"
> "$unreachable_file"for ((i=1; i<=255; i++)); doip="$subnet.$i"timeout 1 telnet $ip 22 >/dev/null 2>&1if [ $? -eq 0 ]; thenecho "$ip is reachable." >> "$reachable_file"elseecho "$ip is unreachable." >> "$unreachable_file"fi
done

在上述脚本中,我们添加了两个变量 reachable_fileunreachable_file,用于指定联通地址和不通地址的输出文件名。

  • reachable_file 变量指定了联通地址的输出文件名,例如 “reachable.txt”。
  • unreachable_file 变量指定了不通地址的输出文件名,例如 “unreachable.txt”。

在循环中,我们通过使用重定向 >> 将结果追加到相应的文件中。如果地址联通,则将结果追加到 reachable.txt 文件中;如果地址不通,则将结果追加到 unreachable.txt 文件中。

脚本运行后,它将生成两个文本文件,其中一个包含联通地址的列表,另一个包含不通地址的列表。你可以根据需要修改输出文件的名称和路径。

请确保脚本所在的目录有写入文件的权限,或者根据需要修改文件的路径以确保正确写入文件。

http://www.lryc.cn/news/89969.html

相关文章:

  • AntDB-S流式数据库体验
  • CentOS 和 Windows 上添加和删除路由
  • 2023年电大秋季招生截止日期 什么时候开始报名
  • 滑动窗口问题
  • 电子合同网页预览盖章效果实现
  • 棋盘覆盖问题
  • [CISCN2023]unzip
  • 基于Html5的在线资料库的设计与实现(asp.NET,SQLServer)
  • 【Vue】二:Vue核心处理---计算属性 监视属性
  • 【Web服务器集群】Nginx网站服务
  • 开始第一个vue项目,环境搭建+html项目运行
  • Redis 的数据类型和命令帮助
  • 【C++11】智能指针
  • 三、Go的常用命令以及Go的执行原理
  • ESP32 CAM 模块和 OpenCV 的二维码扫描器
  • 多链路传输技术在火山引擎 RTC 的探索和实践
  • 在Flask中构建API接口
  • Postgres vs MySQL
  • 02.IP地址以及静态路由配置
  • GD32(STM32)因为中断问题,导致不能进行程序 正常运行
  • 华为OD机试真题B卷 Java 实现【统计字符】,附详细解题思路
  • 深入理解设计原则之开闭原则(OCP)
  • 【学习随笔】
  • 【多路IO复用】select
  • cuda编程学习——基础知识介绍!干货向(三)
  • 30 VueComponent 事件的绑定
  • 作用域及作用域链
  • 深入解析Linux C/C++ 编程中的内存泄漏问题
  • 【爬虫第三章】 Python基础
  • 电力系统的虚假数据注入攻击和MTD系统研究(Matlab代码实现)