shell脚本:ip/mask 转换为 ip1-ip2

原创 2015年11月19日 18:05:57
#!/bin/sh
ip="192.168.12.23"
mask="23"
echo "input:${ip}/${mask}"


msk_end()
{
declare -i FULL_MASK_INT=4294967295
declare -i RIGHT_MOVE=$1
declare -i N="${FULL_MASK_INT} >> ${RIGHT_MOVE}"
declare -i H1="$N & 0x000000ff"
declare -i H2="($N & 0x0000ff00) >> 8"
declare -i L1="($N & 0x00ff0000) >> 16"
declare -i L2="($N & 0xff000000) >> 24"
echo "$L2.$L1.$H2.$H1"
}
msk()
{
#0xFFFFFFFF
declare -i FULL_MASK_INT=4294967295
declare -i MASK_LEN=$1
declare -i LEFT_MOVE="32 - ${MASK_LEN}"
#if mask is 24, N is 0xFFFFFF00
declare -i N="${FULL_MASK_INT} << ${LEFT_MOVE}"
declare -i H1="$N & 0x000000ff"
declare -i H2="($N & 0x0000ff00) >> 8"
declare -i L1="($N & 0x00ff0000) >> 16"
declare -i L2="($N & 0xff000000) >> 24"
echo "$L2.$L1.$H2.$H1"

}

ipend()
{
    local cc=""
    for i in 1 2 3 4
    do
        let "aa = $(echo $1 | cut -d '.' -f $i) | $(echo $2 | cut -d '.' -f $i)"
        if [ -n "$cc" ]
        then
            cc="$cc.$aa"
        else
            cc="$aa"
        fi
     done
     echo "$cc"
}
ipstart()
{
    local cc=""
    for i in 1 2 3 4
    do
        let "aa = $(echo $1 | cut -d '.' -f $i) & $(echo $2 | cut -d '.' -f $i)"
        if [ -n "$cc" ]
        then
            cc="$cc.$aa"
        else
            cc="$aa"
        fi
     done
     echo "$cc"
}
maskstart=$(msk $mask)
maskend=$(msk_end $mask)
dd=$(ipstart $ip $maskstart)
ddend=$(ipend $ip $maskend)
echo "output:${dd}-${ddend}"

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

shell脚本设置固定IP

首先进入root账户 su 然后: cd vim change_ip.sh Shell脚本如下: #!/bin/bash netmask=255.255.255.0 IP_PAT...

(转)SHELL脚本:检测一坨IP是否都能ping通(网卡监控)

脚本用到了一个文件:ipsearch,此文件的内容格式如下: 221.222.223.224  ==>  a013 192.168.36.224   ==>  a013 每行一个,格...

Linux系统防CC攻击自动拉黑IP增强版Shell脚本

前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原因是因为360网站卫士的缓存黑名单突然无法过滤后台,导致WordPress无法登录!虽然,可以通过修改本地hosts文件来解决这个...

Shell脚本实现动态配置IP与路由:解决嵌入式Android/Linux有线和无线网卡双网共存问题

Shell脚本实现动态配置IP与路由:解决嵌入式Android/Linux有线和无线网卡双网共存问题 网络环境及问题再现 命令行方式实现双网共存 Shell脚本自动实现双网共存(根据网络环境动态配置I...

shell脚本实现ssh自动登录-功能扩展,实现多个IP可选

功能: shell脚本实现ssh自动登录-功能扩展,实现多个IP可选。有时我们可能要用ssh登录多个远程的帐号,这时下面的方法可能就会有所限制。现在重新扩展fwqs_ssh.sh 脚本实现可用ss...

C# System.Net.NetworkInformation 命名空间学习之NetworkInterface 类获取IP,DNS,Gateway,Mask, MAC等网络相关信息

慢慢更新
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)