Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- trap 'exit 130' INT
- function convert() {
- ips=()
- network=(${1//\// })
- iparr=(${network[0]//./ })
- if [[ $((8-${network[1]})) -gt 0 ]]; then
- netmaskarr=($((256-2**(8-${network[1]}))) 0 0 0)
- elif [[ $((16-${network[1]})) -gt 0 ]]; then
- netmaskarr=(255 $((256-2**(16-${network[1]}))) 0 0)
- elif [[ $((24-${network[1]})) -gt 0 ]]; then
- netmaskarr=(255 255 $((256-2**(24-${network[1]}))) 0)
- elif [[ $((32-${network[1]})) -gt 0 ]]; then
- netmaskarr=(255 255 255 $((256-2**(32-${network[1]}))))
- fi
- for i in $(seq 0 $((255-${netmaskarr[0]}))); do
- for j in $(seq 0 $((255-${netmaskarr[1]}))); do
- for k in $(seq 0 $((255-${netmaskarr[2]}))); do
- for l in $(seq 1 $((255-${netmaskarr[3]}))); do
- ips+=( $(( $i+$(( ${iparr[0]} & ${netmaskarr[0]})) ))"."$(( $j+$(( ${iparr[1]} & ${netmaskarr[1]})) ))"."$(($k+$(( ${iparr[2]} & ${netmaskarr[2]})) ))"."$(($l+$((${iparr[3]} & ${netmaskarr[3]})) )) )
- done
- done
- done
- done
- }
- convert $1
- #echo ${ips[@]}
- for i in ${ips[@]}
- do
- if ping -c1 $i &> /dev/null
- then
- echo $i "available"
- else
- echo $i "not available"
- fi
- done
Add Comment
Please, Sign In to add comment