Это связано с тем, что IPv6 не использует протокол разрешения адресов (ARP), он использует протокол обнаружения соседей (NDP).
С помощью команды ip neighbor
будет выведен список как кеша ARP, так и обнаруженных соседей IPv6.
Я вижу все подключенные устройства к моему ПК с Linux с помощью:
cat /proc/net/arp
Но это показывает только адреса IPv4 и MAC подключенных устройств. Там нет IPv6 адресов.
Как найти IPv6-адреса подключенных устройств?
Это связано с тем, что IPv6 не использует протокол разрешения адресов (ARP), он использует протокол обнаружения соседей (NDP).
С помощью команды ip neighbor
будет выведен список как кеша ARP, так и обнаруженных соседей IPv6.
Простейшая команда, чтобы перечислить все соединения является ss | less
, но для просмотра только TCP или UDP или UNIX соединения использовать -t
это,
ss -t
это должно показать вам все соединения TCP / IPv4 и IPV6.
Для отображения только соединений с сокетом IPv4 используйте параметр -f inet
или -4
.
ss -tl -f inet или
сс-тл -4
Для отображения только подключений IPv6 используйте параметр -f inet6
или -6
.
сс-тл6 или
ss -finet6
Или просто для комбинированного использования соседних узлов IPv4 и IPv6
ip neighbour
Который покажет текущую таблицу соседей в ядре.
Но ПРИМЕЧАНИЕ : /proc/net/arp
не перечисляет устройства, подключенные к вашему ПК. Он показывает список устройств в вашей подсети, для которых ваш ПК сделал / увидел запрос ARP для. Если вы хотите увидеть, какие устройства подключены к вашему ПК, то вам нужно netstat
или подобное (которое автоматически покажет устройства ipv4 и ipv6). IPv6 не использует ARP (он использует NDP)
надеюсь, это поможет