TCPDump - กรองตามที่อยู่ MAC


25

ฉันต้องการแสดงปริมาณข้อมูลทั้งหมดสำหรับหรือจากที่อยู่ MAC ที่ระบุ สำหรับสิ่งที่ฉันพยายาม

sudo tcpdump host aa:bb:cc:11:22:33

มันไม่ทำงานและส่งคืนข้อผิดพลาดให้ฉัน

tcpdump: pktap_filter_packet: pcap_add_if_info(en0, 1) failed: pcap_add_if_info: pcap_compile_nopcap() failed

ฉันไม่ทราบวิธีการตีความข้อความแสดงข้อผิดพลาดนี้และฉันไม่รู้วิธีแก้ปัญหา

ความช่วยเหลือใด ๆ


คุณแน่ใจหรือว่าเป็นรูปแบบที่อยู่ MAC ที่ถูกต้อง ที่อยู่ MAC ไม่มีรูปแบบมาตรฐาน ฉันพบปัญหาเกี่ยวกับอุปกรณ์และรหัสต่าง ๆ ที่ต้องใช้รูปแบบที่แตกต่างกัน บางคนต้องการโคลอน, ขีดคั่นบางส่วน, มี 2 หลัก, บางอันมี 3, บางอันมี 4, และ, ครั้งหนึ่ง, ที่จำเป็นต้องใช้แบ่งครึ่ง
Ron Maupin

สวัสดีใช่แน่นอน นี่เป็นรูปแบบที่ใช้สำหรับการตอบกลับเมื่อใช้งานได้ เช่นตัวอย่างคำสั่งนี้ใช้งานได้:> sudo tcpdump -e -nni all ether src aa: bb: cc: 11: 22: 33 แก้ไข: และมันคืนค่าประมาณสิ่งที่ฉันต้องการโดยทั่วไป (ฉันเพิ่งค้นพบสิ่งนั้น)
phenetas

นั่นเป็นข้อความแสดงข้อผิดพลาดที่น่ากลัวอย่างแท้จริงและ tcpdump บน OS X ก่อน Mavericks หรือเมื่อไม่ได้จับอุปกรณ์ "ใด ๆ " ใน Mavericks และใหม่กว่าหรือในระบบปฏิบัติการอื่นจะรายงาน "tcpdump: ที่อยู่อีเทอร์เน็ตที่ใช้ในการแสดงออกที่ไม่ใช่อีเทอร์" . ฉันได้ยื่นข้อผิดพลาด 21698116 ในนักข่าวของ Apple แล้ว

คำตอบ:


41

คุณใช้สิ่งต่อไปนี้เป็นตัวกรองแพ็คเก็ตของคุณ: host aa:bb:cc:11:22:33

นี่คือสิ่งที่กำลังมองหา IP หรือชื่อโฮสต์ แต่คุณจะให้ที่อยู่ MAC

ในการใช้ที่อยู่ MAC คุณต้องรวมetherตัวกรองแพ็คเก็ตดั้งเดิม

ในกรณีของคุณสิ่งต่อไปนี้ควรใช้งานได้:

sudo tcpdump ether host aa:bb:cc:11:22:33

หรือหากต้องการให้คุณระบุอินเทอร์เฟซก็จะเป็นเช่น:

sudo tcpdump -i eth0 ether host aa:bb:cc:11:22:33

ขอบคุณนี่เป็นคำอธิบายที่ดีจริงๆฉันเข้าใจพารามิเตอร์ "อีเธอร์" อย่างชัดเจนแล้ว คำถามหนึ่งในตอนนี้คือเหตุใดฉันจึงไม่เห็นส่วนหัวของแพ็กเก็ต HTTP เมื่อฉันท่องเว็บ (ฉันมี iPhone เป็นอุปกรณ์ทดสอบและฉันกำลังดมที่อยู่ MAC ของมันถ้าฉัน ping ฉันสามารถดู trafic ถ้าฉันเพิ่งปลุกหรือทำให้มันหลับฉันสามารถเห็นการจราจร แต่ไม่มีอะไรเมื่อท่อง Safari)
phenetas

ไม่มีใครสามารถพูดได้จริงๆเพราะเราไม่รู้จักสภาพแวดล้อมของคุณหรือที่ที่คุณกำลังดูข้อมูลในสภาพแวดล้อมนั้น ฉันจะต้องรู้มากขึ้นก่อนที่จะสามารถตอบคำถามนั้น
YLearn

ตกลงฉันพัฒนาบน Mac ที่ใช้ระบบปฏิบัติการ 10 โยเซมิตีครั้งสุดท้ายและอุปกรณ์ทดสอบของฉันคือ iPhone 5S ที่มี iOs 7 เครือข่ายนั้นเป็นพื้นฐานจุดเชื่อมต่อ wifi หนึ่งเครื่องหนึ่ง Mac หนึ่ง iPhone สิ่งคือถ้าฉันทำsudo tcpdumpฉันจะเห็นทุก trafic บนเครือข่ายและถ้าฉันท่องเว็บบน Mac ของฉันฉันจะเห็นบรรทัดที่ชอบ11:54:20.887984 IP 10.11.204.50.56049 > 886entdc11.enterprise.886ventures.com.domain: 46247+ A? programmers.stackexchange.com. (47)แต่ถ้าฉันทำsudo tcpdump host IPOfIphoneแล้วฉันจะไม่เห็นอะไรจาก trafic อินเทอร์เน็ตถ้าฉันท่องด้วย โทรศัพท์.
phenetas

สมมติว่า "access point" ของคุณเป็นอุปกรณ์เกตเวย์และให้การเข้าถึงอินเทอร์เน็ตและคุณกำลังทำ tcpdump บน Mac: ยกเว้นว่าคุณได้กำหนดค่าให้ทำเช่นนั้นการรับส่งข้อมูลอินเทอร์เน็ตของ iPhone จะไม่ ผ่าน Mac ดังนั้น Mac จะไม่เห็นมัน
YLearn

ใช่มันสมเหตุสมผลแล้วบางทีฉันอาจขาดพื้นฐานของระบบเครือข่าย (พื้นหลังไฟฟ้า) ดังนั้นหากฉันเข้าใจว่าคุณกำลังบอกว่าฉันเห็นได้เฉพาะการรับส่งข้อมูลจาก / ถึงแม็คของฉันหรือออกอากาศ แต่ในกรณีนี้ทำไมฉันถึงเห็นทราฟฟิกเมื่อโทรศัพท์เชื่อมต่อกับ wifi ในกรณีนี้ฉันได้รับข้อความ11:45:52.852928 IP 10.11.204.15.mdns > 224.0.0.251.mdns: 0*- [0q] 1/0/1 TXT "model=N51AP" (98)ซึ่งเป็นการสื่อสารระหว่างโทรศัพท์ (10.11.204.15) และ 224.0.0.251 ซึ่งไม่ใช่ mac ของฉัน (ฉันถือว่านี่เป็นจุดเชื่อมต่อ)
phenetas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.