在 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. python学习笔记(1)

    python简介 python是Guido van Rossum在圣诞节打发无聊的时间时候写出来的语言. python是解释性的语言. python是动态类型的语言. python是强类型定义语言(高 ...

  2. CQRS FAQ (翻译)

    我从接触ddd到学习cqrs有6年多了, 其中也遇到了不少疑问, 也向很多的前辈牛人请教得到了很多宝贵的意见和建议. 偶尔的机会看到国外有个站点专门罗列了ddd, cqrs和事件溯源的常见问题. 其中 ...

  3. Android开发环境(IDE)

    一:Eclipse 1.装JDK: 2.装Eclipse://应与JDK同为32/64位. 3.装ADT: 4.装android sdk: 推荐下载ADT bundle包(包含Eclipse,Andr ...

  4. Django+Tastypie作后端,Backbone作前端的TodoMVC

    TodoMVC是各种js框架入门的比较经典的例子,详细可查看github地址https://github.com/tastejs/todomvc 接着上篇文章, 1,先在github上把backbon ...

  5. java比较两个对象是否相等的方法

    java比较两个对象是否相等直接使用equals方法进行判断肯定是不会相同的. 例如: Person  person1  =new Person("张三"); Person  pe ...

  6. PHP与apache环境配置

    最近想了解一些网页后台的东西,在看Luke Welling,laura Thomson的<php与mysql web开发>,书中环境配置的部分很庞杂,网上的各种教程也很乱,搞了一下午终于成 ...

  7. IOS网络第五天 AFN-03-监控网络状态

    ******* #import "HMViewController.h" #import "AFNetworking.h" @interface HMViewC ...

  8. spring装配---处理自动装配的歧义性

    一.歧义性 当我们使用spring的注解进行自动装配bean时,如果不仅有一个bean能够匹配结果的话,会抛出NoUniqueBeanDefinitionException: 例如本例中 当sprin ...

  9. jsp 页面标签 积累

    http://www.cnblogs.com/xiadongqing/p/5232592.html <%@ taglib %>引入标签库 ========================= ...

  10. insert操作卡死的处理过程

    insert操作卡死的处理过程 先看看insert为什么被卡死 SQL> select sql_id from v$sql where sql_text like 'delete from st ...