Tôi có một loạt địa chỉ mac và khi tất cả chúng không có trên mạng, tôi muốn làm gì đó. Đây là kế hoạch ban đầu của tôi:
mac_addresses=('1' '2' '3')
arp_output=$(arp)
cho cấp độ trong "${mac_addresses[@]}"
làm
tiếng vang "$arp_output" | grep -iq "$level" || mac_count=$((mac_count+1))
xong
nếu [[ "$mac_count" = "${#mac_addresses[@]}" ]]
sau đó
làm việc gì đó
fi
Tôi đang sử dụng địa chỉ mac của điện thoại để kiểm tra. Vì vậy, chỉ có một phần tử trong mảng: điện thoại của tôi.
Tôi nhận thấy rằng tập lệnh đang hoạt động không đáng tin cậy. Khi điện thoại của tôi được kết nối với mạng, tập lệnh không làm gì cả. Tốt. Khi tôi ngắt kết nối điện thoại của mình khỏi mạng (hay còn gọi là tắt wifi), nó vẫn không làm gì cả, mặc dù đến thời điểm này thì nó vẫn vậy (vì điện thoại của tôi không còn trên mạng nữa và đó là chiếc duy nhất trong mảng, vì vậy nó nên làm một cái gì đó vào thời điểm này).
Vì vậy, tôi đã thử một cách khác: sử dụng Sudo nmap -sn 192.168.2.*
. Tuy nhiên, điều này cũng không hoạt động.
Khi điện thoại của tôi có mặt, nó không làm gì cả. Tôi ngắt kết nối điện thoại của mình và nó làm gì đó. Tôi kết nối lại điện thoại của mình và nó vẫn hoạt động, mặc dù điện thoại của tôi lại có mặt trên mạng. Và nó không phải là khoảng vài giây. Điện thoại của tôi đã kết nối lại mạng được 20 phút và nó vẫn hoạt động.
Có cách nào để sửa lỗi này? Có phải vì một số bộ nhớ đệm?
CHỈNH SỬA: [Phản hồi cho Minsky]
Xem những điều sau đây:
# "1" sẽ là địa chỉ mac của điện thoại của tôi
arp | grep -i "1" #phone đã kết nối với wifi
192.168.2.16 ête 1 C enp3s0
#PHONE HIỆN ĐÃ NGẮT KẾT NỐI
arp | grep -i "1" #phone not connect to wifi
192.168.2.16 ête 1 C enp3s0
arp | grep -i "1" #phone not connect to wifi
192.168.2.16 ête 1 C enp3s0
arp | grep -i "1" #phone not connect to wifi
192.168.2.16 ête 1 C enp3s0
ping -b 192.168.2.255
Sản lượng lớn; 192.168.2.16 không hiển thị ở đầu ra
arp | grep -i "1" #phone not connect to wifi
192.168.2.16 ête 1 C enp3s0
#PHONE HIỆN ĐÃ ĐƯỢC KẾT NỐI LẠI
arp | grep -i "1" #phone đã kết nối với wifi
192.168.2.16 ête 1 C enp3s0
sudo nmap -sn 192.168.2.* | grep "1"
#KHÔNG PHẢN HỒI; MÃ THOÁT 1