gpt4 book ai didi

android - 如何在相同的 Ad-Hoc 模式下获取附近手机的 RSSI 和 Mac 地址?

转载 作者:IT王子 更新时间:2023-10-29 00:42:43 26 4
gpt4 key购买 nike

我已经将一些 android 手机更改为 ad-hoc 模式并让它们具有相同的 essid(通过在每部手机上使用命令:“iwconfig .. essid XXX”)。这样他们合并在一个ad-hoc网络中,并且可以在它们之间成功发送udp数据包。

接下来,我想在同一个 ad-hoc 网络中获取附近手机的 RSSI 和 Mac 地址。我尝试启动 wpa_supplicant 进程并打算通过扫描获取 rssi(不是通过 android 系统,所以 android API 例如 getRssi(), getScanResult() 无法使用),但我只得到一个 essid “XXX”,代表这个 adhoc 网络(BSSID)和一个假 Mac 地址

然后我尝试修改命令“iwlist”在android上重新编译它,我得到了与上面相同的结果..我不知道这种现象是由linux系统还是无线驱动决定的..

然后我 try catch 手机的信标数据包,我得到了正确的 mac 和 rssi,但是信标接收器处于监控模式而不是 ad-hoc 模式,因此无法将 udp 数据包发送到附近的手机..

那么我该怎么做才能在同一 Ad-Hoc 网络中获取每部手机的 RSSI 和 Mac 地址?

非常感谢!!

最佳答案

我不确定我是否完全理解您的问题,但我认为您对 WiFi 有点误解。

首先,RSSI代表“Received Signal Strength Indication”,意思是从接收者的角度来看信号的强度。在您的情况下,一部手机了解另一部手机的 RSSI 的唯一方法是有关 RSSI 的数据是否在更高(即应用程序)层进行通信。

例如:

  1. 手机 A 向手机 B 发送无线消息 XYZ。
  2. 电话 B 可以在 -75dBm 时听到来自电话 A 的消息 XYZ。
  3. 然后,电话 B 可以向电话 A 发送一条消息,告诉电话 A 它正在以 -75dBm 的频率收听电话 A。
  4. (电话 A 现在可以通过使用它从电话 B 接收到的消息的 RSSI 来达到与电话 B 相同的目的)

其次,我不完全了解 ad-hoc 网络如何处理 BSSID 等,但我相当肯定您会遇到与上述 RSSI 类似的问题。 IE。 ad-hoc 模式可能会选择使用哪个 BSSID 来建立 WiFi 网络。这不一定是任何设备的 MAC 地址(例如,它可以是伪造的 MAC)。如果您想将手机自己的 MAC 传递给另一部手机,您必须将其放入应用层的消息中,然后将其发送到另一部手机上的接收应用程序。

例如:

  1. 电话 A 询问自己的操作系统/网络接口(interface)并找到自己的 MAC 地址(注意:它可能会找到多个!)
  2. 电话 A 将其放入应用程序消息(即您自己的 UDP 数据包)中并将其发送到电话 B。
  3. 电话 B 收到消息,解压缩消息并找出 MAC 电话 A 告诉它的内容。

所以简而言之,答案是:在应用层收集和共享信息,您不能从 wifi 堆栈中“嗅探/窃听”您要查找的信息。

关于android - 如何在相同的 Ad-Hoc 模式下获取附近手机的 RSSI 和 Mac 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6675301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com