“PING”AP 看看它是否还活着? (关联之前)

“PING”AP 看看它是否还活着? (关联之前)

我想检测某个 AP 地址是否存在,即通过“PING”其 SSID 或 MAC 地址(两者都已知)。

我可以使用什么程序来实现这一目标?我正在制作一个以 root 身份运行的简单脚本。

(我希望我不会这样做iwlist scan | grep XX

答案1

作用iw(list) scan是在所有通道上(一一)发送 ProbeRequest 消息,而不指定目标 SSID,通道范围内的所有 AP 都会使用 ProbeResponse 进行应答

您想要的是发送特定 SSID 的 ProbeRequest,您可以通过iw wlanx scan ssid xxxiw wlanx scan freq xxxx ssid xxxx

如果您不想解析iw输出,您可以使用编写一个简单的程序NL80211进行扫描的接口(命令NL80211_CMD_TRIGGER_SCAN)并可以访问原始扫描结果或使用像为你做事

答案2

通常,您无法 ping 通 AP,因为它是第 2 层设备,这意味着它在数据链路层运行。该层不会响应 ICMP 回显。在该层中,了解 AP 是否正常工作的唯一方法是查看是否可以 ping 通您的下一跳(通常是您的网关)。要专门检查 AP,您必须以第二层方式查明是否有流量流向您。

笔记:如果能与AP关联,一般说明AP是好的。

但是,要检查您的 AP 是否正常工作。首先通过 查找您的 AP 的 SSID(MAC 地址)iwlist。执行此操作后,运行tcpdump并检查以确保您收到从 SSID 到计算机 MAC 地址的数据包。

例子:

tcpdump -i wlan0 -e -nn 'ether src XX:XX:XX:XX:XX:XX && ether dst FF:FF:FF:FF:FF:FF'

通过查看此流量,您将看到您正在从 AP 接收流量并且已正确关联。

tcpdump -i wlan0 -e -nn 'ether src XX:XX:XX:XX:XX:XX && ether dst YY:YY:YY:YY:YY:YY'

将 XX 替换为 AP(SSID)的 MAC 地址,将 YY 替换为无线接口的 MAC 地址。如果您在此处看到流量,则表明 AP 正在专门向您的无线接口发送流量,这可以更明确地显示您所连接的内容。

此答案假设您正在尝试确保所遇到的错误与 AP 连接有关。

如果您想要不同的东西 - 即类似 NetworkManager 的应用程序,它将连接到任何可用的 SSID,请将其添加到您的问题中。

相关内容