วิธีค้นหาอุปกรณ์ทั้งหมด (ที่อยู่ IP, ชื่อโฮสต์, ที่อยู่ MAC) ในเครือข่ายท้องถิ่น


14

ฉันได้อ่านเกือบทุกหัวข้อที่เกี่ยวข้องกับเรื่องนี้ แต่ก็ไม่มีใครทำได้ง่ายในการเข้าถึงตารางดังต่อไปนี้

  IP Address     Hostname        MAC Address
  192.168.1.10 | myAppleTV     | 02:78:42:9b:bb:12
  192.168.1.10 | myiPhone      | b2:18:4a:3a:42:22
  192.168.1.10 | myiMac        | 09:17:a2:95:c4:00
  192.168.1.10 | myCanonPrinter| a0:ea:72:77:b4:aa

เวลาส่วนใหญ่ที่ฉันใช้arp -aและยังมีdns-sbแต่ไม่มีพวกเขาทำให้ง่ายต่อการค้นหาข้อมูลที่สำคัญ 3 ชิ้นเมื่อใดก็ตามที่ฉันยุ่งในเครือข่ายเช่นที่อยู่ IP ชื่อโฮสต์และที่อยู่ MAC ฉันประหลาดใจที่ไม่มียูทิลิตี้ที่ทำสิ่งนี้ได้สำเร็จ!


ข้อมูลประเภทนี้ส่วนใหญ่จะเป็นเราเตอร์
151019

คำตอบ:


12

หากการใช้ยูทิลิตี้ของบุคคลที่สามไม่ใช่ปัญหาสำหรับคุณฉันขอแนะนำให้ลองทำสิ่งต่อไปนี้:

arp-scan (ใช้งานได้ผ่านHomebrew )

brew install arp-scan
arp-scan --localnet

fing (ดาวน์โหลดและติดตั้งแพ็คเกจ "Desktop Embedded CLI" จากfing.comหรือผ่าน Homebrew brew cask install fing)

sudo fing -r 1 -d true -o table,text

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

หากคุณต้องการหลีกเลี่ยงการใช้เครื่องมือของบุคคลที่สามนี่คือวิธีทำสิ่งที่คล้ายกับคำสั่งในตัว คุณสามารถเรียกใช้การโต้ตอบเหล่านี้ แต่มันอาจจะง่ายกว่าที่จะบันทึกเป็นสคริปต์ NBเพื่อให้สั้นสคริปต์นี้ไม่มีการตรวจสอบข้อผิดพลาดและใช้ได้เฉพาะใน / 24 เครือข่ายย่อย การแก้ไขเพื่อให้ทำงานบนซับเน็ตขนาดอื่น ๆ จะถูกปล่อยไว้เป็นแบบฝึกหัดสำหรับผู้อ่าน :)

#!/usr/bin/env bash
tab=$'\t'
pIF=$(echo "show State:/Network/Global/IPv4" | scutil | awk -F: '/PrimaryInterface/{sub(/ /,"",$2); print $2}')
sn=$(ipconfig getifaddr $pIF | sed -En 's/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/p')
for i in {1..254}; do ping -i0.1 -W100 -c1 $sn.$i | grep from; done
arp -a | grep $pIF | sed -e 's/^\?/unnamed/' -e "s/\ at\ /${tab}/g" -e "s/\ on\ /${tab}/g" -e 's/\ ifscope.*$//g' | awk 'BEGIN { FS="\t"; OFS="\t"; printf "%-17s\t%-15s\t%s\n", "MAC","INTERFACE","HOSTNAME (IP)" } { if($2!="(incomplete)") {printf "%-17s\t%-15s\t%s\n",$2,$3,$1}}'

สิ่งนี้ควรแสดงผลลัพธ์เช่น:

MAC                 INTERFACE       HOSTNAME (IP)
0:90:b:7a:85:62     en0             r1.lan (192.168.20.1)
2c:36:f8:48:2b:47   en0             cisco-sg300-10p.lan (192.168.20.2)
84:78:ac:a6:95:a0   en0             cisco-sg300-20.lan (192.168.20.3)
b4:fb:e4:cb:93:85   en0             wap1.lan (192.168.20.10)
0:11:32:10:cd:c1    en0             nas.lan (192.168.20.20)
0:11:32:3d:99:c9    en0             nas2.lan (192.168.20.21)
0:11:32:10:cd:c1    en0             unnamed (192.168.20.23)
d4:4b:5e:fe:6a:75   en0             brwd44b5efe6a75.lan (192.168.20.90)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.