首页 > 其他 > 详细

ip地址扫描

时间:2018-05-02 20:33:09      阅读:132      评论:0      收藏:0      [点我收藏+]

自己写的一个ip地址扫描的shell脚本,功能是输入ip地址和掩码,通过ping检测整个网段的ip地址,输出ping的结果。

主要的几个函数如下:

1、ip地址转化为数值,方便计算

ip2num()
{
    ip=$1
    a=`echo $ip |awk -F . {print $1}`
    b=`echo $ip |awk -F . {print $2}`
    c=`echo $ip |awk -F . {print $3}`
    d=`echo $ip |awk -F . {print $4}`
    num=$(($a*256*256*256+$b*256*256+$c*256+$d))
    echo $num
    echo "obase=10;(($num))"bc
}

2、数值转化为ip

num2ip()
{
    num=$1
    a=$(($num/(256*256*256)))
    #echo $a
    b=$(($num/(256*256)-$a*256))
    #echo $b
    c=$(($num/256-$a*256*256-$b*256))
    #echo $c
    d=$(($num-$a*256*256*256-$b*256*256-$c*256))
    #echo $d
    echo $a.$b.$c.$d >>ip.dat
    iptmp=$a.$b.$c.$d
}

3、cdr掩码转化为ip格式

cdr2mask ()
{
   # Number of args to shift, 255..255, first non-255 byte, zeroes
   set -- $(( 5 - ($1 / 8) )) 255 255 255 255 $(( (255 << (8 - ($1 % 8))) & 255 )) 0 0 0
   [ $1 -gt 1 ] && shift $1 || shift
   #echo ${1-0}.${2-0}.${3-0}.${4-0}
   mask=${1-0}.${2-0}.${3-0}.${4-0}
}

4、ip格式掩码转化为cdr

mask2cdr ()
{
   # Assumes theres no "255." after a non-255 byte in the mask
   local x=${1##*255.}
   set -- 0^^^128^192^224^240^248^252^254^ $(( (${#1} - ${#x})*2 )) ${x%%.*}
   x=${1%%$3*}
   echo $(( $2 + (${#x}/4) ))
}

5、由ip地址和掩码计算网络地址

net ()
{
    
    ip=$1
    a=`echo $ip |awk -F . {print $1}`
    b=`echo $ip |awk -F . {print $2}`
    c=`echo $ip |awk -F . {print $3}`
    d=`echo $ip |awk -F . {print $4}`

    mask=$2
    m=`echo $mask |awk -F . {print $1}`
    n=`echo $mask |awk -F . {print $2}`
    o=`echo $mask |awk -F . {print $3}`
    p=`echo $mask |awk -F . {print $4}`
    
    n1=$(($a&$m))
    n2=$(($b&$n))
    n3=$(($c&$o))
    n4=$(($d&$p))
    
    net=$((n1*256*256*256+n2*256*256+n3*256+n4))
#    echo $net
}

3、4两个函数直接用的网上大神的,写的很简洁,对比自己写的,感觉自己low爆了,哈哈

 

ip地址扫描

原文:https://www.cnblogs.com/wangle0529/p/8981866.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!