我想检测某个 AP 地址是否存在,即通过“PING”其 SSID 或 MAC 地址(两者都已知)。
我可以使用什么程序来实现这一目标?我正在制作一个以 root 身份运行的简单脚本。
(我希望我不会这样做iwlist scan | grep XX
)
答案1
答案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,请将其添加到您的问题中。