当前位置: 首页 > news >正文

Linux shell 网络掩码地址转CIDR

例子:

./1.sh 255.255.255.0

./1.sh 255.255.255.128

./1.sh 255.255.0.0

源实现:

#!/bin/bash

netmask_to_cidr() {
    local IFS
    local -a octets
    local i=0
    local cidr=0

    IFS='.' read -r -a octets <<< "$1"
    for octet in "${octets[@]}"; do
        while [ $octet -gt 0 ]; do
            cidr=$((cidr + (octet & 1)))
            octet=$((octet >> 1))
        done
    done
    echo "$cidr"
}

# 将点分十进制格式的子网掩码转换为CIDR格式
netmask=$1
cidr=$(netmask_to_cidr $netmask)
echo "子网掩码 $netmask 转换为CIDR格式为: /$cidr"

相关文章:

  • 软考笔记--系统架构评估
  • Flutter使用auto_updater实现windows/mac桌面应用版本升级功能
  • 学习笔记-cmake
  • Mysql中的MVCC
  • 通过Spring Boot 实现页面配置生成动态接口?
  • Material UI 5 学习02-其它按钮组件
  • Android中的传感器类型和接口名称
  • 探索数据结构:单链表的实战指南
  • 【C++】C++模板基础知识篇
  • 【kubernetes】关于k8s集群的污点和容忍,以及k8s集群的故障排查思路
  • 读《文明之光》第1册总结
  • Cluade3干货:超越GPT,模型特点分析+使用教程|2024年3月更新
  • 【C++精简版回顾】18.文件操作
  • 蓝桥杯刷题(一)
  • C语言从入门到精通 第十二章(程序的编译及链接)
  • 备份 ChatGPT 的聊天纪录
  • [C语言]——分支和循环(4)
  • Guitar Pro 8.1中文版永久许可证激活2024最新24位注册激活码生成器
  • 开发Chrome扩展插件
  • Springboot + Vue用户管理系统
  • 阿里CEO:将以饱和式投入打法,聚焦几大核心战役
  • 上海楼市“银四”兑现:新房市场高端改善领跑,二手房量价企稳回升
  • 泽连斯基称与特朗普通话讨论停火事宜
  • 马新民卸任外交部条约法律司司长
  • 云南临沧一行贿案金额认定比受贿案多41万,重审时检方变更金额起诉
  • 美联储主席:美联储工作方式不会受特朗普影响,从未寻求与总统会面