在 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. @Html.Partial和@Html.Action区别

    1.首先看一下它们的对等关系 @Html.Partial 对应 @{Html.RenderPartial();}@Html.Action 对应 @{Html.RenderAction();} 以上相互 ...

  2. Spring中文文档

    前一段时间翻译了Jetty的一部分文档,感觉对阅读英文没有大的提高(*^-^*),毕竟Jetty的受众面还是比较小的,而且翻译过程中发现Jetty的文档写的不是很好,所以呢翻译的兴趣慢慢就不大了,只能 ...

  3. 浏览器-09 javascript引擎和Chromium网络栈

    语言的运行 C/C++语言 使用编译器直接将它们编译成本地代码(机器指令),这是由开发人员在代码编写完成之后实施; 用户只是使用这些编译好的本地代码,这些本地代码被系统的加载器加载执行,由操作系统调度 ...

  4. 浏览器-07 chromium 渲染1

    Chromium 软件渲染 软件渲染就是利用CPU,根据一定的算法来计算生成网页的内容; Chromium都是用软件渲染的技术来完成页面的绘制工作(除非强行打开硬件加速绘制); 软件渲染基础和架构 R ...

  5. 转:WCF、WebAPI、WCFREST、WebService之间的区别

    WCF.WebAPI.WCFREST.WebService之间的区别   注明:转载 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API ...

  6. Android之UI编程(二):表格布局

    表格布局(TableLayout)继承了LinearLayout,它的本质依然是线性布局管理器,表TableLayout采用行.列的形式来管理UI组件,它并不需要明确地声明暴行多少行.多少列,而是通过 ...

  7. Android 进程常驻(使用第三方MarsDaemon)(虽然不可用,但是还是保留下。)

    github地址: https://github.com/Marswin/MarsDaemon 原理分析: Android 进程常驻(0)----MarsDaemon使用说明 Android 进程常驻 ...

  8. comebotree树

    comebotree树: java: @RequestMapping(value="/combobox.do") public @ResponseBody String combo ...

  9. c#操作xml文件(XmlDocument,XmlTextReader,Linq To Xml)

    主界面

  10. 关于 apue.h 的使用方法

    unix中有很多地方使用到apue.h  .apue.h是作者自己写的一个头文件,这个文件怎么用,晚上有很多方法,但是经过尝试大多不好用. 经过本人尝试,可以把src.3e.tar.gz 的代码解压到 ...