วิธีค้นหาที่อยู่ mac ของเครื่องทั้งหมดในเครือข่าย


31

มีวิธีง่าย ๆ ในการค้นหาที่อยู่ mac ของเครื่องทั้งหมดในเครือข่ายของฉันแทนที่จะทำ SSH ลงในแต่ละเครื่องและifconfig | grep HWaddrหากมี 300 เครื่องในเครือข่ายฉันต้องการโซลูชันที่ง่ายจริงๆ


2
เพื่อความสมบูรณ์: arp -n 0.0.0.0 โดยที่ 0.0.0.0 คือที่อยู่ IP ของอุปกรณ์ โปรดทราบว่าคุณจะยังค้นหาได้ครั้งละหนึ่งรายการ บางครั้งคุณต้องการเพียงอันเดียวและนี่เร็วกว่าการใส่ในแต่ละช่อง เกิดอะไรขึ้นถ้ามันเป็นกล่อง Windows หรือเครื่องพิมพ์?
d -_- b

2
sudo arp-scan --localnet
Silver Moon

คำตอบ:


34

คุณสามารถใช้nmapเพื่อเรียกใช้การสแกน ping

nmap -sP 192.168.254.*

Starting Nmap 5.00 ( http://nmap.org ) at 2011-03-09 11:32 GMT
Host xyzzy.lan (192.168.254.189) is up (0.00022s latency).
MAC Address: 00:0C:29:5B:A5:E0 (VMware)
Host plugh.lan (192.168.254.196) is up (0.00014s latency).
MAC Address: 00:0C:29:2E:78:F1 (VMware)
Host foo.lan (192.168.254.200) is up.
Host bar.lan (192.168.254.207) is up (0.00013s latency).
MAC Address: 00:0C:29:2D:94:A0 (VMware)
Nmap done: 256 IP addresses (4 hosts up) scanned in 3.41 seconds

แก้ไข:

สคริปต์ sed เพื่อกรองเอาต์พุตไปยัง IP -> MAC - ใส่สิ่งนี้ลงในไฟล์

/^Host.*latency.*/{
    $!N
    /MAC Address/{
        s/.*(\(.*\)) .*MAC Address: \(.*\) .*/\1 -> \2/
    }
}  
/[Nn]map/d
s/^Host .*is up/& but MAC Address cannot be found/

และใช้มันแบบนี้

nmap -sP 192.168.254.0/20 | sed -f sedscript
192.168.254.189 -> 00:0C:29:5B:A5:E0
192.168.254.196 -> 00:0C:29:2E:78:F1
Host foo.lan (192.168.254.200) is up but MAC Address cannot be found.
192.168.254.207 -> 00:0C:29:2D:94:A0

ใช่นี่คือสิ่งที่ฉันกำลังมองหาฉันอ่านข้อความอื่น ๆ และมันไม่ใช่สวิตช์ของซิสโก้ที่ขอบคุณสำหรับข้อความทั้งหมด
สมาชิกที่ลงทะเบียน

1
ฉันพบว่าวิธีเดียวที่จะทำให้ที่อยู่ mac แสดงขึ้นได้คือเรียกใช้ nmap ในฐานะรูท นอกจากนี้ยังปรากฏว่า sedscript ใช้งานไม่ได้อีกต่อไป [ข้อความใกล้ที่อยู่ IP มีการเปลี่ยนแปลง
พระสงฆ์

รายงานการสแกน Nmap สำหรับ 192.168.1.147 Host is up (0.00045s latency) ที่อยู่ MAC: XX: XX: XX: XX: XX: XX
พระภิกษุ

16

ใช้ nmap สิ่งสำคัญในการรันเป็นรูทเพื่อให้ได้ที่อยู่ MAC ตัวอย่าง:

sudo nmap -sP 192.168.1.0/24 

จะสแกน 192.168.1.1 - 192.168.1.255 ค้นหาสัญกรณ์ CIDR บนวิกิถ้าคุณไม่คุ้นเคยกับสัญกรณ์ซับเน็ตนี้

คุณควรจะได้รับ nmap จาก repos ของ distro Linux รุ่นล่าสุดเช่น

sudo apt-get install nmap

หรือ

sudo yum install nmap

ตัวอย่างผลลัพธ์จากเครือข่ายของฉัน:

Host 192.168.1.1 is up (0.0069s latency).
MAC Address: 00:0D:54:9B:D8:F4 (3Com)
Host 192.168.1.78 is up (0.0068s latency).
MAC Address: 00:0C:29:BC:3D:1C (VMware)
Host 192.168.1.91 is up (0.0038s latency).
MAC Address: 00:0C:29:8A:F4:A3 (VMware)
Host 192.168.1.92 is up (0.0039s latency).
MAC Address: 00:0C:29:65:60:5F (VMware)
Host 192.168.1.158 is up (0.033s latency).
MAC Address: 00:0C:29:82:24:EA (VMware)
Host 192.168.1.186 is up (0.0024s latency).
MAC Address: 00:0C:29:3E:26:1F (VMware)
Host 192.168.1.190 is up (0.0066s latency).

ใช่วิธีการของคุณเป็นวิธีที่ค่อนข้างง่าย
สมาชิกที่ลงทะเบียน

7

ตราบใดที่คุณเรียกใช้คำสั่งนี้จากโฮสต์ในส่วนเครือข่ายเดียวกันnmapจะรายงานที่อยู่ MAC ทั้งหมดสำหรับแต่ละโฮสต์ที่ค้นพบ

ตัวอย่างเช่น:

sudo nmap 192.168.1.0/24 -sP

Starting Nmap 4.76 ( http://nmap.org ) at 2011-03-09 06:29 EST

Host old.net (192.168.1.1) appears to be up.
MAC Address: 00:18:39:C5:A1:DC (Cisco-Linksys)

สำหรับที่อยู่ MAC ฉันจำเป็นต้องรูทบนกล่อง Ubuntu ของฉัน นอกจากนี้วิธีการง่ายๆสำหรับโฮสต์เดียวก็คือการ ping และดูที่ตาราง arp ด้วยarp -aหากคุณต้องการใช้คำสั่งที่ปกติรวมอยู่ในการติดตั้งเริ่มต้นของการกระจาย:

arp -a | grep -v incomplete
foo.net (192.168.1.145) at 00:0d:4b:6a:2c:cb [ether] on eth0

7

ลองคำสั่งนี้:

arp-scan --interface=eth0 192.168.1.0/24

ฉันรู้ว่านี่เป็นคำถามที่เก่ามาก อย่างไรก็ตาม nmap ไม่ได้ให้ที่อยู่ MAC ใด ๆ กับฉัน arp-scan ได้ ขอบคุณ
MikeP

5

ภาพที่ดีที่สุดของคุณอาจแสดงตารางที่อยู่ MAC บนสวิตช์ของคุณทั้งนี้ขึ้นอยู่กับโทโพโลยี LAN ของคุณ

ตัวอย่างเช่นหากโครงสร้างสวิตช์ของคุณเป็น Cisco คุณอาจลอง

sh mac address-table

ในทุกสวิตช์

ถ้าคุณมีสวิทช์หลายท่านอาจจะทำงานโดยอัตโนมัตินี้ผ่านการใช้SNMP

ตัวเลือกอื่นและ (อีกครั้ง) ขึ้นอยู่กับโทโพโลยีและประเภทอุปกรณ์เครือข่ายของคุณคุณอาจลองรับที่อยู่ mac ของอุปกรณ์ของคุณที่แสดงตาราง arp บนเราเตอร์ของคุณ

ด้วยวิธีใดวิธีหนึ่งจากสองวิธีนี้คุณจะได้รับรายการที่อยู่ mac ของอุปกรณ์ใด ๆ ที่เชื่อมต่อกับโครงสร้างพื้นฐานเครือข่ายของคุณ: พีซีเครื่องพิมพ์จุดเข้าใช้งาน ฯลฯ ในกรณีแรกแม้กระทั่งอุปกรณ์ที่ไม่มีที่อยู่ IP สิ่งนี้อาจจะใช่หรือไม่ใช่ว่าคุณต้องการ แต่มันก็คุ้มค่าที่จะลอง



1

เนื่องจากคุณพูดถึง ssh ในเครื่องในเครือข่ายของคุณคุณยังสามารถใช้ shorty นี้:

nmap -p 22 10.100.10.0/24 >/dev/null ; arp -a

0

คุณสามารถใช้โปรแกรมที่ชื่อว่า SIW ได้ฟรีและสแกนเครือข่ายที่ไม่ต้องการการอนุญาตหรือ args

URL: http://www.gtopala.com/

มีให้ใน. exe หรือติดตั้งแบบเต็ม


.exe? แท็กระบุว่า "Linux-Netowrking"
d -_- b
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.