1

Я пытаюсь программно определить, подключен ли мой телефон к текущей сети, учитывая, что я знаю MAC-адрес моего устройства.

Нечто подобное работает ИНОГДА:

arp -a | grep "11:11:11:11:11:11"

Хотя это займет довольно много секунд, чтобы найти результаты. А иногда это просто не работает. Любая помощь очень ценится!

2 ответа2

3

В целом, использование таблицы ARP в качестве механизма для определения наличия устройства будет ненадежным. Это потому, что ваша машина будет иметь запись ARP, только если она недавно увидела IP-пакет с телефона.

Один (не рекомендуемый способ) сделать поиск ARP/MAC надежным - это пропинговать каждый адрес в локальной сети, прежде чем пытаться увидеть, что содержит таблица ARP. Это может работать, потому что пинг будет выполнять разрешение адресов для каждого адреса как часть процесса пинга. Но проверка всех возможных адресов в локальной сети может рассматриваться как необщительная.

Другая возможность заключается в использовании Bonjour. Добрый день позволяет устройствам находить друг друга через механизм вещания, который может работать независимо от ARP.

0

Итак, используйте nmap .
Или установите статический IP, и просто ping его.
Или, если у вас есть доступ к Linux, попробуйте что-то вроде:

sudo iw dev wlan0 station get <peer-MAC-address>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .