Score:1

การตรวจสอบว่ามีที่อยู่ mac บนเครือข่ายของฉันทำงานไม่น่าเชื่อถือหรือไม่

ธง in
Cas

ฉันมีอาร์เรย์ของที่อยู่ mac และเมื่อไม่มีอยู่ในเครือข่าย ฉันต้องการทำบางอย่าง นี่คือแผนเดิมของฉัน:

mac_addresses=('1' '2' '3')
arp_output=$(อาร์พี)
สำหรับระดับใน "${mac_addresses[@]}"
ทำ
   เสียงสะท้อน "$arp_output" | grep -iq "$level" || mac_count=$((mac_count+1))
เสร็จแล้ว

ถ้า [[ "$mac_count" = "${#mac_addresses[@]}" ]]
แล้ว
   ทำอะไรสักอย่าง
ไฟ

ฉันใช้ที่อยู่ mac ของโทรศัพท์เพื่อทดสอบ มีเพียงองค์ประกอบเดียวในอาร์เรย์: โทรศัพท์ของฉัน

ฉันสังเกตเห็นว่าสคริปต์ทำงานไม่น่าเชื่อถือ เมื่อโทรศัพท์ของฉันเชื่อมต่อกับเครือข่าย สคริปต์ไม่ได้ทำอะไรเลย ดี. เมื่อฉันตัดการเชื่อมต่อโทรศัพท์ของฉันจากเครือข่าย (หรือที่เรียกว่าปิด wifi) มันยังคงไม่ทำอะไรเลย แม้ว่ามันควรจะเป็น ณ จุดนี้ (เพราะโทรศัพท์ของฉันไม่ได้อยู่ในเครือข่ายอีกต่อไปและนั่นเป็นเพียงเครื่องเดียวในอาร์เรย์ ดังนั้นมันควรทำ บางอย่าง ณ จุดนี้)

ดังนั้นฉันจึงลองวิธีอื่น: ใช้ sudo nmap -sn 192.168.2.*. อย่างไรก็ตามสิ่งนี้ไม่ได้ผลเช่นกัน

เมื่อโทรศัพท์ของฉันอยู่ มันไม่ได้ทำอะไรเลย ฉันตัดการเชื่อมต่อโทรศัพท์ของฉัน และมันทำอะไรบางอย่าง ฉันเชื่อมต่อโทรศัพท์อีกครั้งและยังคงทำบางอย่าง แม้ว่าโทรศัพท์ของฉันจะอยู่บนเครือข่ายอีกครั้ง และมันไม่เกี่ยวกับวินาที โทรศัพท์ของฉันอยู่ในเครือข่ายเป็นเวลา 20 นาทีแล้วและยังคงทำบางอย่างอยู่

มีวิธีแก้ไขปัญหานี้หรือไม่? เป็นเพราะแคชบางอย่างหรือไม่?

แก้ไข: [ตอบกลับ Minsky]

ดูต่อไปนี้:

# "1" จะเป็นที่อยู่ mac ของโทรศัพท์ของฉัน
อาร์พ | grep -i "1" #โทรศัพท์เชื่อมต่อกับ wifi
192.168.2.16 อีเธอร์ 1 C enp3s0

#โทรศัพท์ถูกตัดการเชื่อมต่อแล้ว

อาร์พ | grep -i "1" #โทรศัพท์ไม่ได้เชื่อมต่อกับ wifi
192.168.2.16 อีเธอร์ 1 C enp3s0
อาร์พ | grep -i "1" #โทรศัพท์ไม่ได้เชื่อมต่อกับ wifi
192.168.2.16 อีเธอร์ 1 C enp3s0
อาร์พ | grep -i "1" #โทรศัพท์ไม่ได้เชื่อมต่อกับ wifi
192.168.2.16 อีเธอร์ 1 C enp3s0

ping -b 192.168.2.255
ผลผลิตขนาดใหญ่ 192.168.2.16 ไม่ปรากฏในเอาต์พุต

อาร์พ | grep -i "1" #โทรศัพท์ไม่ได้เชื่อมต่อกับ wifi
192.168.2.16 อีเธอร์ 1 C enp3s0

#โทรศัพท์เชื่อมต่อใหม่แล้ว

อาร์พ | grep -i "1" #โทรศัพท์เชื่อมต่อกับ wifi
192.168.2.16 อีเธอร์ 1 C enp3s0

sudo nmap -sn 192.168.2.* | เกรป "1"
#ไม่มีการตอบกลับ; รหัสออก 1
ru flag
ARP ใช้งานได้เฉพาะในส่วนเครือข่ายของคุณ - อยู่นอกช่วงเครือข่ายท้องถิ่นของคุณในช่วง IP แยกต่างหากหรือไม่ เราเตอร์ / ระบบ wifi ของคุณตั้งค่า "ความเป็นส่วนตัว" ซึ่งแยกอุปกรณ์ออกจากกันหรือไม่?
Cas avatar
in flag
Cas
ไม่มีทั้งสองคำถาม อุปกรณ์ทั้งสองอยู่บน `192.168.2.XXX` และเราเตอร์ไม่ได้ตั้งค่าให้แยกอุปกรณ์ (ไม่ใช่แค่ vlan ใช่ไหม)
Minsky avatar
mx flag
'arp' บนพีซีติดตามการเชื่อมต่อ / ตัดการเชื่อมต่อโทรศัพท์ของคุณหรือไม่ อย่างน้อยในแล็ปท็อปของฉัน ฉันต้องเรียกใช้ `ping -b ` ก่อนหรือไม่ได้อัปเดตอุปกรณ์ (บางครั้ง) [[ ลบรายการก่อนหน้า ความคิดเห็นเพื่อรักษาความสะอาด]]
Cas avatar
in flag
Cas
@Minsky ดูการแก้ไขในโพสต์ต้นฉบับ
meuh avatar
cn flag
ตาราง arp เป็นแคช ดังนั้นรายการเก่าจะถูกลบออกหลังจากผ่านไประยะหนึ่งเท่านั้น คุณควรพึ่งพาการตอบกลับ "ping" เพื่อดูว่าอุปกรณ์ยังอยู่หรือไม่ ดูเพิ่มเติมที่ `man ip neighbour` ซึ่งแทนที่คำสั่ง `arp` คุณสามารถล้างแคชด้วย `ip neigh flush dev eth0` โดยที่ eth0 เป็นอินเทอร์เฟซ ก่อนการออกอากาศ ping
Cas avatar
in flag
Cas
เป็นวิธีที่ง่ายกว่าในการ ping อุปกรณ์ แต่ฉันมีแค่ที่อยู่ mac ไม่ใช่ที่อยู่ ip เลยไม่รู้ว่าต้อง ping ip address อะไร ฉันมีเพียงที่อยู่ mac ดังนั้นฉันต้อง "แปลง" ที่อยู่ mac เป็นที่อยู่ IP ก่อน อย่างไรก็ตาม คุณจะทำอย่างนั้นได้อย่างไร?
meuh avatar
cn flag
คุณกำลังทำการ ping ออกอากาศ `ping -b 192.168.2.255` สิ่งนี้ควรเติมตาราง arp สำหรับอุปกรณ์ออนไลน์ที่มีที่อยู่ IP 192.168.2.*

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา