网络连通性测试

news/2025/1/16 11:09:43/

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.ppmy.cn/news/97013.html

相关文章

MySQL的数据库引擎介绍

1、什么是数据库引擎 数据库引擎就是操作数据库的一段程序或程序段&#xff0c;用于存储、处理和保护数据的核心服务。 利用数据库引擎可控制访问权限并快速处理事务&#xff0c;从而满足企业内大多数需要处理大量数据的应用程序的要求。数据库应用项目是通过数据库引擎与数据库…

【Spring篇】IOC/DI配置管理第三方bean

&#x1f353;系列专栏:Spring系列专栏 &#x1f349;个人主页:个人主页 目录 一、案例:数据源对象管理 1.环境准备 2.实现Druid管理 3.实现C3P0管理 二、加载properties文件 1.第三方bean属性优化 2.读取单个属性 3.注意事项 三、核心容器 1.环境准备 2.容器 1.容器的创建…

物联网边缘计算方案

一、 前言 随着互联网技术的进一步发展以及数据和物联网的爆发式增长&#xff0c;基于云计算模型的聚合性服务&#xff0c;逐渐体现出在网络制约、实施性资源、隐私保护方面的缺陷。 为了更好地解决数据问题&#xff0c;人们在物联网中引入了边缘计算。边缘计算支持物联网数据…

EDR(端点、端点检测与响应中心、可视化展现)

EDR基本原理与框架 EDR定义 端点检测和响应是一种主动式端点安全解决方案&#xff0c;通过记录终端与网络事件&#xff08;例如用户&#xff0c;文件&#xff0c;进程&#xff0c;注册表&#xff0c;内存和网络事件&#xff09;&#xff0c;并将这些信息本地存储在端点或集中数…

【华为OD机试】喊7的次数重排【2023 B卷|100分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 喊7是一个传统的聚会游戏,N个人围成一圈,按顺时针从1到N编号。 编号为1的人从1开始喊数,下一个人喊的数字为上一个人的数字加1, 但是当将要喊出来的数字是7的倍数或者数字本身含有7…

学习学习之五星笔记法

所谓五星笔记法&#xff0c;就是每次做笔记之前&#xff0c;先画一个五角星&#xff0c;每个星代表一个问题。一共五个问题&#xff0c;做笔记的过程就是回答五个问题的过程。 背后的核心原理&#xff1a;别人说出来的东西&#xff0c;就算记下来也是别人的&#xff0c;需要对…

Boosting以及代表算法(Adaboost、GBDT)介绍

一、Boosting介绍 1.什么是Boosting Boosting&#xff08;提升&#xff09;是一种集成学习方法&#xff0c;通过组合多个弱学习器来构建一个强学习器。与Bagging不同&#xff0c;Boosting采用了序列化的方式构建模型&#xff0c;每个弱学习器都是在前一个弱学习器的基础上进行…

Java性能调优及排查

Java性能调优及排查 一、 简介二、Java性能瓶颈分析与排查1. 硬件原因引起的性能问题2. JVM原因引起的性能问题3. 应用程序级别引起的性能问题 三、Java性能调优方案制定1. 性能测试方案a. 压力测试b. 监控测试c. 诊断测试 2. 性能调优方案制定a. JVM参数调整b. 代码优化c. 服务…