Страницы

Поиск по вопросам

четверг, 9 апреля 2020 г.

Как получить IP и MAC адреса в сети? Работа с arp cache в linux(android)

#linux #android #сеть #arp

                    
Два дня пытаюсь понять как заполнить arp cache? Мне нужно получить ip и mac адреса
всех устройств в домашней сети для одного приложения под android. Порылся в разных
ресурсах. Как я понял нужно сделать широковещательный запрос в подсеть и ждать.
Ситуация такая:
Я подключен через WiFi к сети домашнего маршрутизатора. ip адрес моего устройства
192.168.0.71, а широковещательный адрес 192.168.0.255, маска подсети 255.255.255.0(то
есть 254 хостов может быть как я понял).
Смотрю arp cache:

 
arp -a
 

Только адрес маршрутизатора 192.168.0.1, а в сети на самом деле как минимум 6 устройств.

Делаю широковещательный пинг

 
ping -c 1 -b 192.168.0.255
 

Пишет что 100% потеря пакетов, лол

Вновь смотрю arp cache - ничего нового.
Пытался под root и не под root.
Есть ли какие нибудь другие пути получить ip и mac адреса в сети?
Помогите плиз! По сетям не силен!
    


Ответы

Ответ 1



Либо ставить nmap на android, либо fping. В общем общая схема такая: пинговать каждый хост в подсети (вне зависимости от его доступности), а потом уже делать arp -a | grep Для nmap будет что-то типа: nmap -sP 192.168.0.* Для fping fping -g 192.168.0.0 192.168.0.255

Ответ 2



Чтобы linux отвечал на широковещательный пинг, надо его включить (на каждом хосте): # echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts При чём -c1 приведёт к тому, что ping завершится после приёма первого пакета и не станет ждать других устройств. Лучше ограничить время 1 секундой: ping -w 1 -b 192.168.0.255 Сканировать подсеть перебором всех адресов можно так (под рутом результат лучше): # nmap -sP -n -T5 192.168.1.0/24

Комментариев нет:

Отправить комментарий