Рейтинг:0

Проверка наличия mac-адреса в сети по-прежнему не работает (ping -b и arp)

флаг in
Cas

Это своего рода продолжение это пост мой.

У меня есть mac-адрес моего телефона (samsung galaxy S9; хотя это не имеет значения). Я хочу проверить, есть ли он в сети или нет. У него нет статического ip, поэтому мне нужно проверить его по mac-адресу.

Я буду ссылаться на mac-адрес своего телефона с [1].

  • На моем телефоне отключен случайный mac-адрес для сети (в том предыдущем посте такого не было). Раньше он генерировал случайный mac-адрес каждый раз, когда подключался к моей сети, теперь этого не происходит.
  • Вот что я делаю, чтобы проверить, находится ли mac-адрес в сети:
    пинг -b 192.168.2.255 -c 20
    арп | grep -i "[1]"
    

Это "журнал" событий:

#телефон подключен к сети
ping -b 192.168.2.255 -c 20 &> /dev/null
арп | grep -i "[1]"
-> успешный

#телефон НЕ подключен к сети (выключен Wi-Fi на телефоне)
ping -b 192.168.2.255 -c 20 &> /dev/null
арп | grep -i "[1]"
-> успешный

Второй раз не должно получиться. Телефон не подключен к сети, но он все еще показывает это в выводе arp.

У моего телефона нет статического ip-адреса, но при подключении к сети он почти всегда получает один и тот же ip-адрес. Это нормально. пинг -b вывод всегда был правильным. Когда мой телефон подключен к сети, я вижу ip-адрес, который он почти всегда получает в списке (из пинг команда). Когда мой телефон не подключен, я никогда не вижу его «стандартный» IP-адрес в выводе. Так что пинг работает и "актуален".

Поэтому я предполагаю, что arp не «актуален», как ping (но это только мое грубое предположение). Я думаю, что arp не обновляет свою таблицу, хотя ping «сделал» новую. Но это то, что я думаю, основываясь на комментарии к предыдущему сообщению: "Вы уже выполняете широковещательный пинг, ping -b 192.168.2.255. Это должно заполнить таблицу arp для любых онлайн-устройств с IP-адресом 192.168.2..*"

Помощь!

Рейтинг:0
флаг us

Если вы используете ARP таблицу, чтобы определить, подключен ли ваш телефон к сети или нет, вам необходимо удалить ARP запись с вашего компьютера ARP Таблица. В противном случае вы не сможете определить изменение, потому что предыдущая запись остается неподвижной.

Вы можете удалить определенные ARP запись с arp -d <IP_АДРЕС> команду и удалите все записи с помощью sudo ip neigh сбросить все.

Но, я думаю, вы должны использовать nmap для сканирования, к тому же не нужно будет чистить ARP стол больше. Вы можете использовать этот скрипт.

#!/бин/баш

мак = "$1"
# Сканирование сети и получение IP-адреса указанного MAC-адреса, если он существует.
PHONEIP=$(sudo nmap -sP -n 192.168.2.0/24 | grep -B2 "$mac" | grep -Eoi "192\.168\.2\.[0-9]+")
если [[ $PHONEIP == "" ]];тогда
    echo "$MAC не найден."
еще
    echo "$MAC найден в $PHONEIP"
фи

Но вы должны указать MAC-адрес вашего телефона в качестве первого аргумента, или вы можете изменить строку мак = "$1" к mac="<ваш-телефон-mac>".

Примечание. Для использования этого скрипта вам потребуются привилегии суперпользователя.

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

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.