要检查 192.168.1 网段中哪些 IP 地址正在使用,可以使用 Shell 脚本结合 ping 命令来扫描整个网段。以下是实现这一功能的完整脚本:


脚本:检查 192.168.1 网段 IP 是否在用

#!/bin/bash

# 定义网段
NETWORK="192.168.1" # 定义超时时间(秒)
TIMEOUT=1 # 定义并行扫描的 IP 数量
PARALLEL=20 # 日志函数
function log_info() {
echo -e "[INFO] $1"
} function log_success() {
echo -e "\033[32m[SUCCESS] $1\033[0m"
} function log_error() {
echo -e "\033[31m[ERROR] $1\033[0m"
} # 检查单个 IP 是否在线
function check_ip() {
local ip=$1
if ping -c 1 -W "$TIMEOUT" "$ip" &> /dev/null; then
log_success "IP $ip is online"
else
log_error "IP $ip is offline"
fi
} # 主函数
function main() {
log_info "Scanning network $NETWORK.0/24..." # 使用循环遍历 1-254 的 IP 地址
for i in {1..254}; do
ip="$NETWORK.$i"
check_ip "$ip" & # 控制并行数量
if [[ $(jobs -r -p | wc -l) -ge $PARALLEL ]]; then
wait -n
fi
done # 等待所有后台任务完成
wait
} # 执行主函数
main

脚本说明

  1. 网段定义

    • NETWORK="192.168.1":定义要扫描的网段。
  2. 超时时间

    • TIMEOUT=1:设置 ping 命令的超时时间为 1 秒。
  3. 并行扫描

    • PARALLEL=20:设置同时扫描的 IP 数量为 20 个,以提高扫描效率。
  4. 日志输出

    • 使用不同颜色的日志区分在线和离线的 IP 地址:

      • 绿色:IP 在线。
      • 红色:IP 离线。
  5. check_ip 函数

    • 使用 ping 命令检查单个 IP 是否在线。
    • 如果 ping 成功,则 IP 在线;否则,IP 离线。
  6. 主函数 main

    • 遍历 192.168.1.1192.168.1.254 的所有 IP 地址。
    • 使用 &check_ip 放入后台执行,实现并行扫描。
    • 使用 jobswait 控制并行任务数量。

使用方法

  1. 将脚本保存为 scan_network.sh
  2. 赋予执行权限:
    chmod +x scan_network.sh
  3. 运行脚本:
    ./scan_network.sh

示例输出

[INFO] Scanning network 192.168.1.0/24...
[SUCCESS] IP 192.168.1.1 is online
[ERROR] IP 192.168.1.2 is offline
[SUCCESS] IP 192.168.1.3 is online
[ERROR] IP 192.168.1.4 is offline
...

优化建议

  1. 增加 IP 范围参数

    可以通过命令行参数指定扫描的 IP 范围,例如:

    ./scan_network.sh 192.168.1.10 192.168.1.20

    修改脚本:

    START_IP=${1:-1}
    END_IP=${2:-254} for i in $(seq "$START_IP" "$END_IP"); do
    ip="$NETWORK.$i"
    check_ip "$ip" &
    done
  2. 保存结果到文件

    可以将扫描结果保存到文件中,便于后续分析:

    LOG_FILE="scan_results.txt"
    function log_success() {
    echo -e "\033[32m[SUCCESS] $1\033[0m"
    echo "[SUCCESS] $1" >> "$LOG_FILE"
    }
    function log_error() {
    echo -e "\033[31m[ERROR] $1\033[0m"
    echo "[ERROR] $1" >> "$LOG_FILE"
    }
  3. 使用 fping 替代 ping

    fping 是一个更高效的网络扫描工具,支持批量扫描。如果系统安装了 fping,可以替换 ping 命令:

    fping -c 1 -t "$TIMEOUT" "$ip" &> /dev/null

总结

该脚本通过并行 ping 扫描 192.168.1 网段,快速检测哪些 IP 地址在线。通过调整并行数量和超时时间,可以平衡扫描速度和准确性。如果需要更高效的扫描,可以考虑使用 nmapfping 等专业工具。

shell脚本检查192.168.1网段ip是否在用的更多相关文章

  1. 【shell脚本】不停地telnet一个ip或域名,并输出结果到文件中===telnetscript.sh

    编写shell脚本不停地telnet一个域名,并输出结果到文件中 [root@localhost ~]# cat telnetscript.sh #!/bin/bash #检查是否在root用户下执行 ...

  2. shell脚本检查域名证书是否过期

    最近公司的域名准备过期了,防止用户访问的时候出现异常,所以最近我们准备替换相关网站证书为最新的. (一般HTTPS证书有效期为1年,证书过期后或者该证书不是该域名的有效证书时,在浏览器中访问会出现如下 ...

  3. Shell脚本检查memcache进程并自己主动重新启动

    修正版: #!/bin/sh #check memcache process and restart if down mm_bin="/usr/local/bin/memcached&quo ...

  4. shell脚本检查是否存在tun0虚拟网卡,若不不存在服务器更改port,并重启服务器,客户端修改port,并重新启动客户端

    openvp 客户端 /home 目录下各脚本文件名 [root@jira home]# ls openvpn_server_restart.sh openvpn_tunnel_monitor.sh ...

  5. shell脚本 检查mysql节点数据一致性

    一.简介 源码地址 日期:2018/4/12 介绍:参考pt checksum思想改写,可以定制化的检查随意两个mysql节点的数据一致性. 功能: 检查随意两个几点的数据一致性 支持并发检查,基于库 ...

  6. Linux Shell脚本之自动修改IP

    作为一名Linux SA,日常运维中很多地方都会用到脚本,而服务器的ip一般采用静态ip或者MAC绑定,当然后者比较操作起来相对繁琐,而前者我们可以设置主机名.ip信息.网关等配置.修改成特定的主机名 ...

  7. shell脚本学习(1)列出一组IP内所有活动主机

    1.用ping命令编写脚本来查询一组IP地址同时检查他们是否处于活动状态 [zhi@centos7 ~]$ vi CheckHostStatus.sh [zhi@centos7 ~]$ ll 总用量 ...

  8. Shell脚本实现自动修改IP地址

    作为一名Linux SA,日常运维中很多地方都会用到脚本,而服务器的ip一般采用静态ip或者MAC绑定,当然后者比较操作起来相对繁琐,而前者我们可以设置主机名.ip信息.网关等配置.修改成特定的主机名 ...

  9. 100个Linux Shell脚本经典案例(附PDF)

    转载自:https://mp.weixin.qq.com/s/tCKAM67_7K7q2vJthaIsDQ 原文链接:https://wenku.baidu.com/view/4f089430a116 ...

  10. shell脚本——作业二(循环作业)

    1.通过位置变量创建linux系统账户及密码 $1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数 #!/bin/bash #创建用户与密码 declare -i c=0 if [ -z $1 ...

随机推荐

  1. Android添加OpenCV支持

    首先下载OpenCV的SDK 推荐在官网下载. 官网地址:https://opencv.org/releases/ 也可以在OpenCV的GitHub上现在 GitHUb链接:https://gith ...

  2. WiFi基础(七):WiFi漫游与WiFi组网

    liwen01 2024.10.27 前言 无线 WiFi 的优点是方便.灵活,可以接入各种设备.缺点就是信号容易被干扰.信号覆盖范围有限.下面几个问题应该很多人都有遇到过: 为何很多洗手间的 WiF ...

  3. 2.5 使用U盘安装Linux系统

    前面章节介绍了如何通过虚拟机 VMware 安装 Linux 系统,而实际开发中,我们更多的是要将 Linux 系统直接安装到电脑上. 直接在电脑上安装 Linux 系统的常用方法有 2 种,分别是用 ...

  4. Linux 练习

    目录 练习一 练习2 练习一 分析日志t.log(访问量),将各个ip地址截取,并统计出现次数,并按从大到小排序(腾讯) 每行格式:http: //192.168.200.30/index1.html ...

  5. webpack打包提示: Uncaught Error: Cannot find module 'strip-ansi'

    运行webpack-dev-server的时候,可以正常启动服务,但是Terminal控制台报错,如下: ERROR in ./node_modules/webpack-dev-server/clie ...

  6. Impala学习--Impala前端代码分析,Impala后端代码分析

    Impala前端代码分析 Table of Contents 1 概述 2 语法分析和ParseNode 3 Analyzer 4 生成执行计划和Planner 5 Catalog 1 概述 前端代码 ...

  7. An expression evaluator

    An expression evaluator  Download source code (17 kb) Two weeks ago, I saw an article on codeproject ...

  8. AtCoder Beginner Contest 379

    Contest Link C 妙妙贪心题,居然需要高斯求和公式. Submission D 妙妙套路题,维护全局 lazytag,easy to solve. Submission E 妙妙拆贡献题, ...

  9. 用谷歌经典ML方法方法来设计生成式人工智能语言模型

    上一篇:<人工智能模型学习到的知识是怎样的一种存在?> 序言:在接下来的几篇中,我们将学习如何利用 TensorFlow 来生成文本.需要注意的是,我们这里并不使用当前最热门的 Trans ...

  10. ZCMU-1053

    比较简单记录一下主要感觉它这个题目没说清楚,题目要求:先有n,接着给出长度为n的标准组,然后给出猜测组,输出的两个数一个是有多少个是相对应的既相同坐标其数值也相同,后一个是两个都有但是位置不同(不含已 ...