在Linux中,如何使用脚本,实现判断 192.168.1.0/24 网络里,当前在线的 IP 有哪些?能ping 通则 认为在线。

简介: 在Linux中,如何使用脚本,实现判断 192.168.1.0/24 网络里,当前在线的 IP 有哪些?能ping 通则 认为在线。

要在Linux中编写一个脚本来判断192.168.1.0/24网络中哪些IP地址是在线的(即可以ping通),你可以使用Shell脚本结合ping命令来实现。下面是一个简单的示例脚本,它会遍历该子网内的所有IP地址,并打印出可以ping通的IP。

请注意,在运行此脚本之前,确保你有执行该操作的权限,并理解ping大量IP可能会对网络造成一定负担。

#!/bin/bash
# 定义网络和掩码
NETWORK=192.168.1
MASK=24
# 计算子网的第一个和最后一个IP
FIRST_IP=$(($NETWORK<<24))&((1<<32)-1-$((1<<(32-$MASK))))
LAST_IP=$((FIRST_IP | (1<<(32-$MASK))-1))
# 遍历IP范围并ping每个IP
for ip in $(seq $FIRST_IP $LAST_IP); do
# 将数字IP转换为点分十进制格式
    PINGABLE_IP=$(printf "%d.%d.%d.%d" $(($ip>>24&0xFF)) $(($ip>>16&0xFF)) $(($ip>>8&0xFF)) $(($ip&0xFF)))
# 尝试ping并检查返回值,通常0表示成功
    ping -c 1 -W 1 $PINGABLE_IP > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "$PINGABLE_IP is online"
fi
done

保存这个脚本到文件中,例如check_ips.sh,然后给它执行权限并运行:

chmod +x check_ips.sh
./check_ips.sh

解释脚本关键部分:

  • #!/bin/bash 定义了脚本使用的Shell类型。
  • $NETWORK$MASK 变量存储了网络地址和子网掩码信息。
  • 使用位运算计算子网的第一个和最后一个IP地址。
  • seq 命令生成IP地址序列。
  • printf 将计算出的数字IP转换为点分十进制格式。
  • ping -c 1 -W 1 指令尝试向每个IP地址发送一个ICMP请求,并设置超时为1秒。
  • $? 存储上一条命令的退出状态,如果ping成功,则其值为0。
  • 根据ping的结果,脚本输出相应的IP地址是否在线的信息。

综上所述,请根据实际情况调整脚本中的参数,比如增加或减少超时时间等。

相关文章
|
8天前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
151 10
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
108 0
Linux系统初始化脚本
|
8天前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
62 2
|
8天前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
37 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
3月前
|
监控 安全 Go
使用Go语言构建网络IP层安全防护
在Go语言中构建网络IP层安全防护是一项需求明确的任务,考虑到高性能、并发和跨平台的优势,Go是构建此类安全系统的合适选择。通过紧密遵循上述步骤并结合最佳实践,可以构建一个强大的网络防护系统,以保障数字环境的安全完整。
86 12
|
3月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
213 1
|
5月前
|
Java Linux
自定义linux脚本用于快速jar包启动、停止、重启
自定义linux脚本用于快速jar包启动、停止、重启
270 29
|
5月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
145 18
|
4月前
|
监控 安全 网络安全
网络安全新姿势:多IP配置的五大好处
服务器配置多IP地址,既能提升网络速度与安全性,又能实现多站点托管和故障转移。本文详解多IP的五大妙用、配置方法及进阶技巧。从理论到实践,合理规划IP资源,让服务器性能跃升新高度。
125 2
|
5月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
271 3