So today i learned how to write a bash program to find active ips on your network.
here is the program, i will explain it below.
#!/bin/bash
if [ "$1" == "" ]
then
echo "Usage: ./ping.sh [network]"
echo "Example: ./ping.sh 192.168.1"
else
for x in {1..254} ; do
ping -c 1 $1.$x |grep "64 bytes"|cut -d" " -f4|sed 's/.$//'
done
fi
I won't go into the complete details , instead i am writing out only the problems i faced.
- first is the if command syntax , there is a space after if [ , it will give error if you write without space
if[ - The seq command somehow didn't worked for me, (i am using ubuntu 17), so i used {1..254}, this command will let the variable take one value at a time from 1 to 254
- semi colon after the range is defined.
- must use a space after sed command i.e. sed 's/....'
That is all , it worked fine for me in ubuntu. striping the text that is not important to me and only showing me the ip addresses that are active in a given network.
CYB3RTR0N
No comments:
Post a Comment