檢查 192.168.1
網(wǎng)段中哪些 IP 地址正在使用,可以使用 Shell 腳本結(jié)合 ping
命令來并發(fā)掃描整個網(wǎng)段。以下是實現(xiàn)這一功能的完整腳本:
腳本:檢查 192.168.1
網(wǎng)段 IP 是否在用
#!/bin/bash
NETWORK="192.168.1"
TIMEOUT=1
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"
}
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..."
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
腳本說明
網(wǎng)段定義
NETWORK="192.168.1"
:定義要掃描的網(wǎng)段。
超時時間
TIMEOUT=1
:設(shè)置 ping
命令的超時時間為 1 秒。
并行掃描
PARALLEL=20
:設(shè)置同時掃描的 IP 數(shù)量為 20 個,以提高掃描效率。
日志輸出
- 使用不同顏色的日志區(qū)分在線和離線的 IP 地址:
check_ip
函數(shù)
- 使用
ping
命令檢查單個 IP 是否在線。 - 如果
ping
成功,則 IP 在線;否則,IP 離線。
主函數(shù) main
- 遍歷
192.168.1.1
到 192.168.1.254
的所有 IP 地址。 - 使用
&
將 check_ip
放入后臺執(zhí)行,實現(xiàn)并行掃描。 - 使用
jobs
和 wait
控制并行任務(wù)數(shù)量。
使用方法
- 將腳本保存為
scan_network.sh
。 - 賦予執(zhí)行權(quán)限:
chmod +x scan_network.sh
- 運(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)化建議
增加 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
保存結(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"
}
使用 fping
替代 ping
fping
是一個更高效的網(wǎng)絡(luò)掃描工具,支持批量掃描。如果系統(tǒng)安裝了 fping
,可以替換 ping
命令:
fping -c 1 -t "$TIMEOUT" "$ip" &> /dev/null
總結(jié)
該腳本通過并行 ping
掃描 192.168.1
網(wǎng)段,快速檢測哪些 IP 地址在線。通過調(diào)整并行數(shù)量和超時時間,可以平衡掃描速度和準(zhǔn)確性。如果需要更高效的掃描,可以考慮使用 nmap
或 fping
等專業(yè)工具。
?轉(zhuǎn)自https://www.cnblogs.com/ydswin/p/18666134
該文章在 2025/1/16 11:18:45 編輯過