在 shell 脚本获取 ip、数字转换等网络操作

  1. ip 和数字的相互转换

    ip转换为数字 ::

     function ip2num() {
    local ip=$1
    local a=$(echo $ip | awk -F '.' '{print $1}')
    local b=$(echo $ip | awk -F '.' '{print $2}')
    local c=$(echo $ip | awk -F '.' '{print $3}')
    local d=$(echo $ip | awk -F '.' '{print $4}')
    echo "$(( (a<<24)+(b<<16)+(c<<8)+d ))"
    }

    数字转换为 ip ::

     function num2ip() {
    local num=$1
    local a=$((num>>24))
    local b=$((num>>16&0xff))
    local c=$((num>>8&0xff))
    local d=$((num&0xff))
    echo "$a.$b.$c.$d"
    }

    CIDR 前缀转换为子网掩码数字 ::

     function prefix2masknum() {
    local prefix=$1
    local i=31
    local k=0
    local mask=0
    while [ $k -lt $prefix ]; do
    bit=$(( 1 << (i-k) ))
    mask=$(( mask+bit ))
    k=$(( k+1 ))
    done
    echo $mask
    }

    然后可用 num2ip 将子网掩码数字转换为 ip 形式

     num2ip $(prefix2masknum <CIDR 前缀长度,如24>)
  2. 从网卡获取第一个 ipv4 地址和 CIDR 前缀

    获取第一个 ipv4 地址,CIDR 前缀

     function get_ip() {
    local dev=$1
    local ip_cidr=$(ip addr show dev $dev | grep "inet[[:blank:]]") |\
    head -n 1 | awk '{print $2}'
    echo ${ip_cidr%/*}
    } function get_prefix() {
    local dev=$1
    local ip_cidr=$(ip addr show dev $dev | grep "inet[[:blank:]]") |\
    head -n 1 | awk '{print $2}'
    echo ${ip_cidr#*/}
    }

在 shell 脚本获取 ip、数字转换等网络操作的更多相关文章

  1. 调用shell脚本,IP处理

    //调用shell脚本,IP处理 package com.letv.sdns.web.utils; import org.slf4j.Logger; import org.slf4j.LoggerFa ...

  2. 关于使用java执行shell脚本获取centos的硬盘序列号和mac地址

    1.获取硬盘序列号: 新建shell脚本文件: identifier.sh, 内容为: diskdata=`fdisk -l` diskleft=${diskdata#*"identifie ...

  3. shell脚本获取mysql插入数据自增长id的值

    shell脚本获取mysql插入数据自增长id的值 在shell脚本中我们可以通过last_insert_id()获取id值,但是,需要注意的是,该函数必须在执行插入操作的sql语句之后,立即调用,否 ...

  4. 014-交互式Shell和shell脚本获取进程 pid

    Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运行进程 1.交互式 Bash Shell 获取进程 pid 在已知进程名(name)的前提下,交互式 ...

  5. shell脚本-获取时间

    获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量DATE=$(date +%Y%m%d) 有时候我们需要使用今天之前或者往后的日期,这时可以使用 ...

  6. 通过shell脚本获取日期,并赋给变量

    通过shell获取当前8位日期,并赋给变量,并且使用变量作为文件名,建立文件夹 代码如下: ls_date=`date +%Y%m%d` mkdir ${ls_date} 上面两句代码虽然简单 但是在 ...

  7. shell脚本获取网页快照并生成缩略图

    获取网页快照并生成缩略图可分两步进行: 1.获取网页快照 2.生成缩略图 获取网页快照 这里我们用 phantomjs 来实现.关于 phantomjs 的详细用法可参考官方网站. 1.安装 我的环境 ...

  8. [Python陷阱]os.system调用shell脚本获取返回值

    当前有shell个脚本/tmp/test.sh,内容如下: #!/bin/bashexit 11 使用Python的os.system调用,获取返回值是: >>> ret=os.sy ...

  9. zabbix3.0.4-agent通过shell脚本获取mysql数据库登陆用户

    zabbix3.0.4获取数据库登陆用户趋势详解 主要思路: 通过zabbix客户端shell脚本mysql命令取出用户表中的数据将结果反馈给zabbix,画出趋势图 1.修改zabbix-agent ...

随机推荐

  1. 彻底解决m2eclipse之Unable to update index for central

    原文链接:https://my.oschina.net/itblog/blog/208581 maven是个好东西,eclipse上的maven插件m2eclipse也非常方便,但是最近这个东西经常无 ...

  2. jq点击显示,再点击隐藏

    每次都会遇到的问题: <script> $("button").click(function(){ if($(".div").css("d ...

  3. Java数组技巧攻略

      Java数组技巧攻略 0.  声明一个数组(Declare an array) String[] aArray = new String[5]; String[] bArray = {" ...

  4. mux复用 demux解复用

    保存音频包: 直接输出解复用之后的的音频数据码流.只需要在每次调用av_read_frame()之后将得到的音频的AVPacket存为本地文件即可. 但在分离AAC码流的时候,直接存储AVPacket ...

  5. 几种经典排序算法的R语言描述

    1.数据准备 # 测试数组 vector = c(,,,,,,,,,,,,,,) vector ## [] 2.R语言内置排序函数 在R中和排序相关的函数主要有三个:sort(),rank(),ord ...

  6. compass tables 表格 表格常见样式[Sass和compass学习笔记]

    demo 源码 地址 https://github.com/qqqzhch/webfans compass  的表格提供了集中常见样式 表格边框 outer-table-borders($width, ...

  7. Git的简单使用教程

    Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. GitHub则可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code ...

  8. 超链接a标签

    a: ---页面中锚点的链接: <a  href="#point"></a> <p id="#point">锚链接</ ...

  9. 查看IIS连接数

    如果要想知道确切的当前网站IIS连接数的话,最有效的方法是通过windows自带的系统监视器来查看. 一.运行-->输入“perfmon.msc”. 二.在“系统监视器”图表区域里点击右键,然后 ...

  10. 在list_*页面显示出一级栏目下的所有二级栏目

    <ul class="nav nav-pills nav-stacked"> {dede:channelartlist typeid='1,1'} <div cl ...