当前位置: 首页 > 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"

http://www.dtcms.com/a/9044.html

相关文章:

  • 软考笔记--系统架构评估
  • 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用户管理系统
  • 鸿蒙开发之gson解析
  • Web自动化测试之selenium环境搭建
  • Zynq—AD9238数据采集DDR3缓存千兆以太网发送实验(二)
  • linux防火墙和开放端口命令
  • MySQL--MHA高可用方案
  • 宏auto关键字(C++基础)
  • GPT-4技术解析:与Claude3、Gemini、Sora的技术差异与优势对比
  • linux循环之until循环
  • 2023年度总结报告
  • 【并查集】一种简单而强大高效的数据结构