Slightly modified and expanded version of this work: https://linuxconfig.org/bash-scripts-to-scan-and-monitor-network
PORTS="{80,443,22}" ./scan_ports.sh 192.168.{1..4}.{1..255}
./scan_ips.sh 192.168.{1..4}.{1..255}
Slightly modified and expanded version of this work: https://linuxconfig.org/bash-scripts-to-scan-and-monitor-network
PORTS="{80,443,22}" ./scan_ports.sh 192.168.{1..4}.{1..255}
./scan_ips.sh 192.168.{1..4}.{1..255}
| #!/bin/bash | |
| is_alive_ping() | |
| { | |
| ping -c 1 $1 > /dev/null | |
| local result=$? | |
| local prefix="%s: " | |
| local suffix="\n\x1b[0m" | |
| [ $result -eq 0 ] && printf "$prefix \x1b[32mup$suffix" $1 | |
| [ $result -gt 0 ] && printf "$prefix \x1b[31mdown$suffix" $1 | |
| } | |
| declare -a ips=( $@ ) | |
| for ip in ${ips[@]} | |
| do | |
| is_alive_ping $ip & | |
| done |
| #!/bin/bash | |
| is_open_nc() | |
| { | |
| local prefix="%s:%s " | |
| local suffix="\n\x1b[0m" | |
| local result="$(echo "\n\n\n" | nc $1 $2)" | |
| [ ${#result} -gt 0 ] && printf "$prefix\x1b[32m open$suffix" $1 $2 | |
| [ ${#result} -eq 0 ] && printf "$prefix\x1b[31m closed$suffix" $1 $2 | |
| } | |
| declare -a ips=( $@ ) | |
| declare -a ports="( $PORTS )" | |
| for ip in ${ips[@]}; do | |
| for port in ${ports[@]}; do | |
| is_open_nc $ip $port & | |
| done | |
| done |