5

我将使用运行基于 Linux 的操作系统的单板计算机 (SBC) 制作移动设备检测器。SBC 将配备一个 USB/802.11 无线适配器。SBC 将是一个 DHCP 服务器。移动设备将加入 SBC 的无线网络(adhoc 或基础设施,没关系)。当移动设备加入网络时,SBC 会检测到它。它将使用一组接受的地址检查传入移动设备的 MAC 地址。如果匹配,SBC 将执行命令。

我有基本的 Linux 知识。我不会编写 shell 脚本,但我知道 C++/Qt。我不知道从哪里开始。你知道在这个项目中使用的相关命令行实用程序或库吗?

PS:也许我只需要一种方法来检测 dhcp 客户端列表何时发生变化。与mac地址过滤一起,这可能会起作用。

4

2 回答 2

0

您可以使用它nmap来发现您的网络。在这里你可以找到一些例子。

然后你应该解析它的输出。例如:

while true; do
    nmap -v -sT 192.168.0.0/24 | fgrep "YOUR_SEARCHED_IP" && \
    echo BINGO "YOUR_SEARCHED_IP" IS IN THE 192.168.0.0/24 NETWORK
done  

并且nmap可以-sn选择跳过端口检查。

更好的是,您可以使用ip neighbor show查看您的邻居网络 IP 地址。

或者您可以使用简单的ping测试,例如:

for ip in $(seq 1 254); do 
    ping -c 1 192.168.1.$ip>/dev/null && \
    echo “192.168.1.$ip is UP"
done

您可以将其与nslookup查看主机名结合使用。

于 2012-01-18T22:17:30.060 回答
0

nmap 测试 IP 层,但无线设备不需要使用它。

您还可以在无线接口上使用“监听”模式和/或结合适当的监听程序,例如 airodump-ng。请注意,如果无线网络使用客户端隔离,您可能会看到比实际参与的客户端少得多,并且还要注意,就像正确交换的以太网一样,您不一定会看到位于另一个网段中的远程客户端。

于 2012-01-19T10:17:23.207 回答