Guest User

Untitled

a guest
Jun 17th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. trap 'exit 130' INT
  2.  
  3. function convert() {
  4.  
  5. ips=()
  6.  
  7. network=(${1//\// })
  8.  
  9. iparr=(${network[0]//./ })
  10.  
  11. if [[ $((8-${network[1]})) -gt 0 ]]; then
  12. netmaskarr=($((256-2**(8-${network[1]}))) 0 0 0)
  13. elif [[ $((16-${network[1]})) -gt 0 ]]; then
  14. netmaskarr=(255 $((256-2**(16-${network[1]}))) 0 0)
  15. elif [[ $((24-${network[1]})) -gt 0 ]]; then
  16. netmaskarr=(255 255 $((256-2**(24-${network[1]}))) 0)
  17. elif [[ $((32-${network[1]})) -gt 0 ]]; then
  18. netmaskarr=(255 255 255 $((256-2**(32-${network[1]}))))
  19. fi
  20.  
  21. for i in $(seq 0 $((255-${netmaskarr[0]}))); do
  22. for j in $(seq 0 $((255-${netmaskarr[1]}))); do
  23. for k in $(seq 0 $((255-${netmaskarr[2]}))); do
  24. for l in $(seq 1 $((255-${netmaskarr[3]}))); do
  25. ips+=( $(( $i+$(( ${iparr[0]} & ${netmaskarr[0]})) ))"."$(( $j+$(( ${iparr[1]} & ${netmaskarr[1]})) ))"."$(($k+$(( ${iparr[2]} & ${netmaskarr[2]})) ))"."$(($l+$((${iparr[3]} & ${netmaskarr[3]})) )) )
  26. done
  27. done
  28. done
  29. done
  30. }
  31.  
  32.  
  33. convert $1
  34.  
  35. #echo ${ips[@]}
  36.  
  37. for i in ${ips[@]}
  38. do
  39. if ping -c1 $i &> /dev/null
  40. then
  41. echo $i "available"
  42. else
  43. echo $i "not available"
  44. fi
  45. done
Add Comment
Please, Sign In to add comment