判断两个IP是否在同一网段(SHELL实现)

实现代码

#!/bin/bash

# 函数:提取 CIDR 的网络地址和子网掩码
function extract_network() {
    echo $1 | awk -F '/' '{print $1}'
}

function extract_subnet() {
    echo $1 | awk -F '/' '{print $2}'
}

# 函数:将 IP 地址转换为二进制格式
function ip_to_binary() {
    local ip=$1
    local binary=""
    local IFS='.'
    local octets=($ip)
    for octet in "${octets[@]}"; do
        local bin_octet=""
        local num=$octet
        for (( i=0; i<8; i++ )); do
            bin_octet=$((num % 2))$bin_octet
            num=$((num / 2))
        done
        binary+=$bin_octet
    done
    echo $binary
}

# 函数:比较两个 IP 地址是否在同一网段
function same_network() {
    network1=$(extract_network $1)
    subnet1=$(extract_subnet $1)
    network2=$(extract_network $2)
    subnet2=$(extract_subnet $2)

    binary1=$(ip_to_binary $network1)
    binary2=$(ip_to_binary $network2)

    # 截取相同长度的二进制子串
    binary1=$(echo $binary1 | cut -c1-$subnet1)
    binary2=$(echo $binary2 | cut -c1-$subnet2)

    if [ "$binary1" == "$binary2" ]; then
        echo "两个 CIDR 在同一网段"
    else
        echo "两个 CIDR 不在同一网段"
    fi
}

# 测试
CIDR1="10.206.216.21/24"
CIDR2="10.206.217.10/24"
same_network $CIDR1 $CIDR2

相关推荐

  1. 判断IP是否(SHELL实现)

    2024-03-19 14:48:01       21 阅读
  2. 判断某个ip是否某个

    2024-03-19 14:48:01       38 阅读
  3. PHP 判断给定时间是否周,月,年

    2024-03-19 14:48:01       44 阅读
  4. C++判定终端ip和目标ip是否局域网内

    2024-03-19 14:48:01       27 阅读
  5. 判断对象某些字的值是否相同

    2024-03-19 14:48:01       36 阅读
  6. Python 判断组词中是否有词话中存在

    2024-03-19 14:48:01       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-19 14:48:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-19 14:48:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-19 14:48:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-19 14:48:01       18 阅读

热门阅读

  1. 人工智能迷惑行为大赏

    2024-03-19 14:48:01       19 阅读
  2. 嵌入式开发常用工具汇总

    2024-03-19 14:48:01       20 阅读
  3. 蓝桥杯C++大学B组一个月冲刺记录2024/3/18

    2024-03-19 14:48:01       19 阅读
  4. IPC之管道

    2024-03-19 14:48:01       18 阅读
  5. 鸿蒙ArkTS语言快速入门-TS(五)

    2024-03-19 14:48:01       20 阅读
  6. 责任链模式

    2024-03-19 14:48:01       14 阅读