Tôi có một câu hỏi tôi muốn chạy một kịch bản quét mạng của tôi và tôi có thể thấy các thiết bị có trong mạng của mình. Tôi muốn dán một số đối số cũng trong kịch bản
Khi tôi chạy tập lệnh:
./ping.sh --xx-YY 20 50
Đầu ra:
192.168.0.20 is down
192.168.0.21 is up
..................................
192.168.0.50 is up
the argument -t , counts 200 by the last digit for ex. ./ping.sh -t 20 output: 192.168.0.220 is up
Nhưng vấn đề của tôi là đối số --up en -mac Tôi muốn khi tôi chạy tập lệnh ./ping.sh --up, nó chỉ hiển thị các máy tính có lên Và đối số - mac cũng là một vấn đề khi tôi chạy tập lệnh Tôi muốn hiển thị địa chỉ IP và địa chỉ de mac sau khi máy tính đang ping **
Ai có thể giúp tôi với 2 đối số này?
Đây là kịch bản của tôi.
#!/bin/bash
while [[ -n "$@" ]]
do
case "$1" in
-h|--help)
Extension=1
shift
;;
-XX-YY)
Extension=2
shift
min=$1
shift
max=$1
shift
;;
--up)
Extension=3
shift
end=$1
shift
;;
-t)
Extension=4
shift
count=$(($1+200))
shift
;;
esac
done
if [ "$Extension" -eq 1 ] ; then
echo "dit is de help"
fi
if [ "$Extension" -eq 2 ] ; then
for ((n=$min ; n<=$max ; n+=1))
do
ip=192.168.0.$n
if ping -c 1 -w 1 ${ip} > /dev/null 2> /dev/null >> logping.txt; then
echo "${ip} is up"
else
echo "${ip} is down"
fi
done
fi
if [ "$Extension" -eq 3 ] ; then
ip=192.168.0.$end
if ping -c 1 -w 1 ${ip} > /dev/null 2> /dev/null >> /logping.txt; then
echo "${ip} is up"
fi
fi
if [ "$Extension" -eq 4 ] ; then
ip=192.168.0.$count
if ping -c 1 -t 1 ${ip} > /dev/null 2> /dev/null >> logping.txt; then
echo "${ip} is up"
else
echo "${ip} is down"
fi
fi