¿Cómo puedo obtener la dirección RSSI y Mac del teléfono cercano en el mismo modo Ad-Hoc?

He cambiado algunos teléfonos android a modo ad-hoc y los dejo tener el mismo essid (usando el comando en cada teléfono: "iwconfig .. essid XXX"). De esta manera se fusionaron en una red ad-hoc y pueden tener éxito Enviar paquetes udp entre ellos.

A continuación, quiero obtener la dirección RSSI y Mac de los teléfonos cercanos en la misma red ad-hoc. Trato de iniciar el proceso wpa_supplicant y la intención de obtener rssi mediante la exploración (no a través del sistema android para que la API android como getRssi (), getScanResult () No podría ser utilizado), pero sólo consigo un "XXX" de esencia que representa esta red adhoc (BSSID) y una dirección de Mac falsa .

Entonces intento modificar el comando "iwlist" para recompilarlo en android, tengo los mismos resultados anteriores .. No sé si este fenómeno está determinado por el sistema linux o controlador inalámbrico ..

Entonces intento coger los paquetes de beacon del teléfono, consigo el mac y el rssi correctos, pero el receptor del beacon está bajo modo del moniter no en el modo ad hoc, así no podría enviar paquetes del udp a los teléfonos cercanos.

¿Qué puedo hacer para obtener la dirección RSSI y Mac de cada teléfono en la misma red Ad-Hoc?

¡¡muchas gracias!!

No estoy seguro de entender completamente su pregunta, pero creo que tiene un poco de un malentendido acerca de WiFi.

En primer lugar, RSSI significa "Received Signal Strength Indication", que significa la fuerza de la señal desde la perspectiva del receptor. En su situación, la única forma en que un teléfono puede conocer el RSSI de otro teléfono es si los datos sobre RSSI se comunican a una capa superior (es decir, aplicación).

Por ejemplo:

  1. El teléfono A envía el mensaje de radio XYZ al teléfono B.
  2. El teléfono B puede escuchar el mensaje XYZ desde el teléfono A a -75dBm.
  3. El teléfono B podría enviar un mensaje al teléfono A para decirle al teléfono A que está escuchando el teléfono A a -75dBm.
  4. (El teléfono A puede ahora a la misma cosa que el teléfono B, usando el RSSI de los mensajes que está recibiendo del teléfono B)

En segundo lugar, no estoy completamente enterado de cómo las redes ad-hoc manejan BSSIDs etc., pero soy bastante seguro que usted hará frente a un problema similar al RSSI uno arriba. Es decir, el modo ad-hoc probablemente elija qué BSSID utilizar para el establecimiento de la red WiFi. Esto no tiene que ser la dirección MAC de ninguno de los dispositivos (por ejemplo, puede ser un MAC falso). Si desea comunicar el MAC de un teléfono a otro teléfono, tendrá que colocarlo en un mensaje en la capa de aplicación y enviarlo a una aplicación receptora en otro teléfono.

Por ejemplo:

  1. El teléfono A interroga sus propias interfaces OS / Network y encuentra su propia dirección MAC (Nota: podría encontrar más de una!)
  2. El teléfono A lo coloca en un mensaje de aplicación (es decir, su propio paquete UDP) y lo envía al teléfono B.
  3. El teléfono B recibe el mensaje, descomprime el mensaje y descubre lo que el teléfono MAC A le ha dicho.

Así que en resumen, la respuesta es: recopilar y compartir la información en la capa de aplicación, no se puede "sniffer / overhear" la información que está después de la pila wifi.

  • Wifi Connect-Desconectar de escucha
  • ¿Cómo compartir programaticamente la pantalla del dispositivo Android con otra vía wifi? (No captura de pantalla)
  • Bibliotecas "Wi-Fi Direct" para Android?
  • Wake lock no parece funcionar
  • Conecta el iPhone a Android Wifi Direct soft AP
  • Detenga la conexión de Android a ciertas redes wifi
  • Android WIFI Cómo detectar cuándo está disponible una conexión WIFI específica
  • Retraso / retraso enorme de UDP con Android
  • Cómo detener la exploración wifi en Android?
  • ¿Cómo distinguir entre diferentes redes wifi?
  • Cómo probar descargar y subir velocidad wifi / 3g?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.