Tập lệnh quét mạng của tôi


0

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

Không vượt qua 4 trang web (SE, Ask, SU và U & L). Điều này thường được coi là thô lỗ và không phù hợp.
bất cứ lúc nào

Câu trả lời:


0

Chúng ta hãy làm một số thứ tự.

Trường hợp # 5: -machoặc, tốt hơn,--ip
Không có vấn đề gì trong dòng "tuyên bố trường hợp" của trường hợp số 5 của bạn.
Không bao giờ tôi mạnh mẽ đề nghị bạn thay đổi tên của tùy chọn từ -macsang --ip. Địa chỉ Mac và Địa chỉ IP là các khái niệm khác nhau và trong trường hợp này tôi nghĩ iplà một khái niệm phù hợp.

Vấn đề về phong cách: ngay cả khi đó không phải là một quy tắc nghiêm ngặt, thông thường việc sử dụng một đơn -nếu tùy chọn sau chỉ được tạo bởi một chữ cái và sử dụng gấp đôi --nếu được tạo bởi nhiều hơn một chữ cái. Ví dụ trong cùng ví dụ của bạn, bạn có -h--help. (Đúng ngay cả --xx-YY). Các kịch bản có xu hướng kéo dài theo thời gian và sẽ thật kỳ lạ sau khi nhìn thấy nó chỉ với một -.

Quay lại mã số 5, bạn có thể sử dụng một cái gì đó tương tự:

if [ "$Extension" -eq 5 ] ; then
  ip=192.168.1.$mac
   if nmap -sP -n -r $ip | grep "is up" >/dev/null ; then
      echo "${ip} is up"
   fi
fi

Lỗi trong lần thử đó:
ip=192.168.0.$macđược xác định trên và dòng sau nó không được sử dụng biến và thay vào đó được sử dụng mạng con . Khối lồng nhau không được đóng bởi a .192.168.0.xxx$ip192.168.1.0/24if... then fifi


** Case # 3: --up**
Nếu tôi sửa hiểu những gì bạn có nghĩa là, bạn muốn hiển thị bằng cách nào đó trong danh sách của tất cả các lên máy chủ trong subnet đó. Vì vậy, bạn không cần chỉ định biến kết thúc cho IP , nhưng bạn nên quét tất cả mạng con 192.168.1.xxx.

Bạn có thể sử dụng một cái gì đó như các lệnh sau

if [ "$Extension" -eq 3 ] ; then
  sudo nmap -sP -n -r 192.168.1.0/24 | grep -E "Nmap scan|MAC Address:"
fi

Cập nhật: Tài liệu tham khảo về Địa chỉ MAC


Cảm ơn bạn rất nhiều, nó không hoạt động nhưng có một vấn đề khi tôi chạy tập lệnh ./ping -mac 185 màn hình hiển thị là 192.168.0.185 nhưng tôi cũng muốn in địa chỉ mac của thiết bị này
Kevin Roggeman

Bây giờ tôi hiểu tại sao bạn gọi nó --mac. BTW đây là một câu hỏi khác ... :) Kiểm tra ở đây hoặc một số trợ giúp của nmap.
Hastur

Tôi không hiểu những gì tôi có thể làm để hiển thị các địa chỉ mac của máy tính
Kevin Roggeman

Cập nhật câu trả lời. Nếu bạn thực hiện với sudonó cũng sẽ trả lời với Địa chỉ Mac. BTW: sử dụng để đăng câu hỏi yêu cầu một câu trả lời và không có nhiều câu trả lời. Nếu câu trả lời bạn nhận được, hãy chuyển vấn đề của bạn sang một điểm khác, tìm kiếm một giải pháp cho điểm đó và sau đó nếu bạn không thể tìm thấy hãy làm một câu hỏi khác. Vì vậy, nó cũng sẽ hữu ích cho những người khác;)
Hastur
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.