LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

shell腳本快速檢查局域網(wǎng)段ip是否在用

freeflydom
2025年1月16日 11:18 本文熱度 386

檢查 192.168.1 網(wǎng)段中哪些 IP 地址正在使用,可以使用 Shell 腳本結(jié)合 ping 命令來并發(fā)掃描整個(gè)網(wǎng)段。以下是實(shí)現(xiàn)這一功能的完整腳本:

腳本:檢查 192.168.1 網(wǎng)段 IP 是否在用

#!/bin/bash
# 定義網(wǎng)段
NETWORK="192.168.1"
# 定義超時(shí)時(shí)間(秒)
TIMEOUT=1
# 定義并行掃描的 IP 數(shù)量
PARALLEL=20
# 日志函數(shù)
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"
}
# 檢查單個(gè) 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
}
# 主函數(shù)
function main() {
  log_info "Scanning network $NETWORK.0/24..."
  # 使用循環(huán)遍歷 1-254 的 IP 地址
  for i in {1..254}; do
    ip="$NETWORK.$i"
    check_ip "$ip" &
    # 控制并行數(shù)量
    if [[ $(jobs -r -p | wc -l) -ge $PARALLEL ]]; then
      wait -n
    fi
  done
  # 等待所有后臺(tái)任務(wù)完成
  wait
}
# 執(zhí)行主函數(shù)
main

腳本說明

  1. 網(wǎng)段定義

    • NETWORK="192.168.1":定義要掃描的網(wǎng)段。
  2. 超時(shí)時(shí)間

    • TIMEOUT=1:設(shè)置 ping 命令的超時(shí)時(shí)間為 1 秒。
  3. 并行掃描

    • PARALLEL=20:設(shè)置同時(shí)掃描的 IP 數(shù)量為 20 個(gè),以提高掃描效率。
  4. 日志輸出

    • 使用不同顏色的日志區(qū)分在線和離線的 IP 地址:
      • 綠色:IP 在線。
      • 紅色:IP 離線。
  5. check_ip 函數(shù)

    • 使用 ping 命令檢查單個(gè) IP 是否在線。
    • 如果 ping 成功,則 IP 在線;否則,IP 離線。
  6. 主函數(shù) main

    • 遍歷 192.168.1.1 到 192.168.1.254 的所有 IP 地址。
    • 使用 & 將 check_ip 放入后臺(tái)執(zhí)行,實(shí)現(xiàn)并行掃描。
    • 使用 jobs 和 wait 控制并行任務(wù)數(shù)量。

使用方法

  1. 將腳本保存為 scan_network.sh
  2. 賦予執(zhí)行權(quán)限:
    chmod +x scan_network.sh
    
  3. 運(yùn)行腳本:
    ./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
...

優(yōu)化建議

  1. 增加 IP 范圍參數(shù)
    可以通過命令行參數(shù)指定掃描的 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. 保存結(jié)果到文件
    可以將掃描結(jié)果保存到文件中,便于后續(xù)分析:

    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 是一個(gè)更高效的網(wǎng)絡(luò)掃描工具,支持批量掃描。如果系統(tǒng)安裝了 fping,可以替換 ping 命令:

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

總結(jié)

該腳本通過并行 ping 掃描 192.168.1 網(wǎng)段,快速檢測(cè)哪些 IP 地址在線。通過調(diào)整并行數(shù)量和超時(shí)時(shí)間,可以平衡掃描速度和準(zhǔn)確性。如果需要更高效的掃描,可以考慮使用 nmap 或 fping 等專業(yè)工具。

?轉(zhuǎn)自https://www.cnblogs.com/ydswin/p/18666134


該文章在 2025/1/16 11:18:45 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
伊人久久综合狼伊人久久 | 亚洲欧美日韩中文字幕不卡 | 日本乱码伦十八在线观看 | 久久福利视频导航 | 亚洲中文字幕乱码一区二区三区 | 日本激情视频一区二区三区 |