30 lines
918 B
Bash
Executable File
30 lines
918 B
Bash
Executable File
#!/bin/bash
|
|
|
|
source .env # load vars from .env file
|
|
|
|
case "${1}" in
|
|
search )
|
|
# load container ip in array IPs
|
|
mapfile IPs < <( nmap 172.28.0.2-10 -sn | grep "ngx" | awk '{print substr($6, 2, length($6)-2)}')
|
|
# using 'tr' for escape bug with \n in array elements
|
|
echo "IPs=( $(echo ${IPs[@]} | tr '\n' ' '))" >> .env
|
|
;;
|
|
block )
|
|
echo "knock -v ${IPs[$2]} $(echo ${CLOSE_PORT_SEQ} | sed 's/,//g')"
|
|
knock -v ${IPs[$2]} $(echo ${CLOSE_PORT_SEQ} | sed 's/,//g')
|
|
;;
|
|
open )
|
|
echo "knock -v ${IPs[$2]} $(echo ${OPEN_PORT_SEQ} | sed 's/,//g')"
|
|
knock -v ${IPs[$2]} $(echo ${OPEN_PORT_SEQ} | sed 's/,//g')
|
|
;;
|
|
list )
|
|
# print array IPs
|
|
numb=0 # counter var
|
|
for ip in "${IPs[@]}"; do
|
|
echo "${numb}: ${ip}" # add index array element
|
|
numb=$((${numb}+1))
|
|
done
|
|
;;
|
|
esac
|
|
|