Я вижу все подключенные устройства к моему ПК с Linux с помощью:
cat /proc/net/arp
Но это показывает только адреса IPv4 и MAC подключенных устройств. Там нет IPv6 адресов.
Как найти 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)
надеюсь, это поможет