ฉันสามารถดูอุปกรณ์ที่เชื่อมต่อกับพีซี Linux ของฉันด้วย:
cat /proc/net/arp
แต่นี่แสดงเฉพาะที่อยู่ IPv4 และ MAC ของอุปกรณ์ที่เชื่อมต่อ ไม่มีที่อยู่ IPv6
จะค้นหาที่อยู่ IPv6 ของอุปกรณ์ที่เชื่อมต่อได้อย่างไร
ฉันสามารถดูอุปกรณ์ที่เชื่อมต่อกับพีซี Linux ของฉันด้วย:
cat /proc/net/arp
แต่นี่แสดงเฉพาะที่อยู่ IPv4 และ MAC ของอุปกรณ์ที่เชื่อมต่อ ไม่มีที่อยู่ IPv6
จะค้นหาที่อยู่ IPv6 ของอุปกรณ์ที่เชื่อมต่อได้อย่างไร
คำตอบ:
นี่เป็นเพราะ IPv6 ไม่ได้ใช้ Address Resolution Protocol (ARP) ซึ่งใช้ Neighbor Discovery Protocol (NDP)
การใช้คำสั่งip neighbor
จะแสดงรายการแคช ARP และการค้นพบเพื่อนบ้านของ IPv6
คำสั่งที่ง่ายที่สุดคือการแสดงรายการการเชื่อมต่อทั้งหมดคือss | less
แต่เพื่อดูเฉพาะการเชื่อมต่อ tcp หรือ udp หรือ unix ใช้-t
นั่นคือ
ss -t
สิ่งนี้จะแสดงการเชื่อมต่อ IPv4 และ IPV6 tcp ทั้งหมดให้คุณเห็น
ในการแสดงเฉพาะการเชื่อมต่อซ็อกเก็ต IPv4 ให้ใช้ตัวเลือก-f inet
หรือ-4
ss -tl -f inet หรือ
เอสเอส -tl -4
ในขณะที่จะแสดงเฉพาะการเชื่อมต่อ IPv6 ให้ใช้ตัวเลือก-f inet6
หรือ-6
เอสเอส -tl6 หรือ
ss -finet6
หรือเพียงสำหรับการรวมโหนด IPv4 และ IPv6 ที่อยู่ติดกันใช้
ip neighbour
ซึ่งจะแสดงตารางเพื่อนบ้านปัจจุบันในเคอร์เนล
แต่หมายเหตุ : /proc/net/arp
ไม่แสดงรายการอุปกรณ์ที่เชื่อมต่อกับพีซีของคุณ มันแสดงรายการของอุปกรณ์บนซับเน็ตของคุณซึ่งพีซีของคุณทำ / เห็นคำขอ ARP หากคุณต้องการดูว่าอุปกรณ์ใดที่เชื่อมต่อกับพีซีของคุณคุณจะต้องใช้อุปกรณ์ที่netstat
คล้ายกัน (ซึ่งจะแสดงทั้งอุปกรณ์ ipv4 และ ipv6 โดยอัตโนมัติ) ipv6 ไม่ใช้ ARP (ใช้ NDP)
ฉันหวังว่านี่จะช่วยได้