Как я могу получить адреса RSSI и Mac близлежащего телефона в одном режиме Ad-Hoc? - PullRequest
4 голосов
/ 13 июля 2011

Я перевел некоторые телефоны Android в режим ad-hoc и позволил им иметь один и тот же essid (используя команду на каждом телефоне: "iwconfig .. essid XXX"). Таким образом, они объединились в одной сети ad-hoc и может успешно отправлять пакеты udp между ними.

Далее я хочу получить адреса RSSI и Mac соседних телефонов в одной специальной сети. Я пытаюсь запустить процесс wpa_supplicant и намереваюсь получить rssi путем сканирования (не через систему Android, а через API Android, такие как getRssi (), getScanResult () не может быть использован), но я получаю только один essid"XXX", обозначающий эту специальную сеть (BSSID) и поддельный Mac-адрес .

затем я пытаюсь изменить команду "iwlist", чтобы перекомпилировать ее на Android, я получил те же результаты выше ... Я не знаю, определяется ли это явление системой Linux или беспроводным драйвером ..

затем я пытаюсь поймать пакеты маяка телефона, я получаю правильные значения mac и rssi, но приемник маяка находится в режиме мониторинга, а не в режиме ad-hoc, поэтому не может отправлять пакеты udp на соседние телефоны.

так что я могу сделать, чтобы получить адреса RSSI и Mac каждого телефона в одной и той же сети Ad-Hoc?

спасибо большое !!

1 Ответ

1 голос
/ 27 сентября 2014

Я не уверен, что полностью понимаю ваш вопрос, но я думаю, что у вас есть некоторое недопонимание относительно WiFi.

Во-первых, RSSI означает «Индикация уровня принимаемого сигнала», что означает силу сигнала.с точки зрения получателя.В вашей ситуации единственный телефон может узнать RSSI другого телефона, если данные о RSSI передаются на более высоком (т.е. прикладном) уровне.

Например:

  1. Телефон A отправляет радиосообщение XYZ на телефон B.
  2. Телефон B может слышать сообщение XYZ с телефона A со скоростью -75 дБм.
  3. Телефон B может затем отправить сообщение на телефон A, чтобы сообщить телефону A, что он слышит телефон A на уровне -75 дБм.
  4. (Телефон A теперь может работать так же, как телефон B,используя RSSI сообщений, которые он получает с телефона B)

Во-вторых, я не совсем понимаю, как специальные сети обрабатывают BSSID и т. д., но я вполне уверен, что вы столкнетесь саналогичная проблема с RSSI выше.Т.е. в режиме ad-hoc, вероятно, выбирается, какой BSSID использовать для создания сети WiFi.Это не обязательно должен быть MAC-адрес любого из устройств (например, это может быть поддельный MAC-адрес).Если вы хотите передать собственный MAC-адрес телефона на другой телефон, вам придется поместить его в сообщение на прикладном уровне и отправить в принимающее приложение на другом телефоне.

Например:

  1. Телефон A запрашивает свои собственные интерфейсы OS / Network и находит свой собственный MAC-адрес (примечание: он может найти более одного!)
  2. Телефон A помещает это в сообщение приложения (т. Е. Ваш собственный пакет UDP).) и отправляет его на телефон B.
  3. Телефон B получает сообщение, распаковывает сообщение и узнает, что MAC-телефон сказал ему.

Короче говоря, ответ: Собирайте и делитесь информацией на прикладном уровне, вы не можете «перехватить / подслушать» информацию, которую вы ищете из стека Wi-Fi.

...