IT评测·应用市场-qidao123.com

标题: shell脚本快速检查192.168.1网段ip是否在用 [打印本页]

作者: 冬雨财经    时间: 2025-1-12 14:53
标题: shell脚本快速检查192.168.1网段ip是否在用
检查 192.168.1 网段中哪些 IP 地址正在使用,可以使用 Shell 脚本结合 ping 命令来并发扫描整个网段。以下是实现这一功能的完整脚本:
脚本:检查 192.168.1 网段 IP 是否在用
  1. #!/bin/bash
  2. # 定义网段
  3. NETWORK="192.168.1"
  4. # 定义超时时间(秒)
  5. TIMEOUT=1
  6. # 定义并行扫描的 IP 数量
  7. PARALLEL=20
  8. # 日志函数
  9. function log_info() {
  10.   echo -e "[INFO] $1"
  11. }
  12. function log_success() {
  13.   echo -e "\033[32m[SUCCESS] $1\033[0m"
  14. }
  15. function log_error() {
  16.   echo -e "\033[31m[ERROR] $1\033[0m"
  17. }
  18. # 检查单个 IP 是否在线
  19. function check_ip() {
  20.   local ip=$1
  21.   if ping -c 1 -W "$TIMEOUT" "$ip" &> /dev/null; then
  22.     log_success "IP $ip is online"
  23.   else
  24.     log_error "IP $ip is offline"
  25.   fi
  26. }
  27. # 主函数
  28. function main() {
  29.   log_info "Scanning network $NETWORK.0/24..."
  30.   # 使用循环遍历 1-254 的 IP 地址
  31.   for i in {1..254}; do
  32.     ip="$NETWORK.$i"
  33.     check_ip "$ip" &
  34.     # 控制并行数量
  35.     if [[ $(jobs -r -p | wc -l) -ge $PARALLEL ]]; then
  36.       wait -n
  37.     fi
  38.   done
  39.   # 等待所有后台任务完成
  40.   wait
  41. }
  42. # 执行主函数
  43. main
复制代码
脚本说明

使用方法

示例输出
  1. [INFO] Scanning network 192.168.1.0/24...
  2. [SUCCESS] IP 192.168.1.1 is online
  3. [ERROR] IP 192.168.1.2 is offline
  4. [SUCCESS] IP 192.168.1.3 is online
  5. [ERROR] IP 192.168.1.4 is offline
  6. ...
复制代码
优化建议

总结

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4