完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
想使用 wifi_promiscuous_set_mac 过滤出某一个终端 mac ,但是无效。
或者有没有其他的方式只 sniffer 某一个特地 mac 的终端? wifi_set_channel(1); wifi_promiscuous_enable(0); const uint8_t mac[6] = {0x50, 0x8f, 0x4c, 0xfe, 0xc6, 0x52}; wifi_promiscuous_set_mac(mac); wifi_set_promiscuous_rx_cb(promisc_cb); wifi_promiscuous_enable(1); 代码如上,但是输出的 mac 仍然是所有的 mac。 |
|
相关推荐
1个回答
|
|
|
在这种情况下,我们可以尝试以下几个步骤来解决问题:
1. 确保硬件支持:首先,我们需要确保您的硬件设备支持 promiscuous 模式和 MAC 地址过滤。不同的硬件设备可能有不同的功能和限制。 2. 检查 API 文档:查阅您使用的 WiFi 模块或库的 API 文档,了解 `wifi_promiscuous_set_mac` 函数的正确用法和限制。可能存在某些特定的参数或条件需要满足才能使该函数生效。 3. 检查代码逻辑:在调用 `wifi_promiscuous_set_mac` 之前,确保已经正确设置了 promiscuous 模式。根据您的代码,您已经调用了 `wifi_promiscuous_enable(0)`,这可能会影响后续的设置。尝试将该行代码删除或更改为 `wifi_promiscuous_enable(1)`。 4. 使用回调函数过滤:如果 `wifi_promiscuous_set_mac` 函数无法实现预期的过滤效果,您可以在回调函数 `promisc_cb` 中手动过滤特定的 MAC 地址。例如: ```c void promisc_cb(uint8_t *buf, uint16_t len) { uint8_t *src_mac = buf + 10; // 假设源 MAC 地址在数据包的第 10 个字节 if (memcmp(src_mac, mac, 6) == 0) { // 处理特定 MAC 地址的数据包 } } ``` 5. 考虑其他方法:如果上述方法都无法解决问题,您可以尝试使用其他工具或库来实现 MAC 地址过滤。例如,使用 Wireshark 或 tcpdump 等网络抓包工具,它们提供了更丰富的过滤选项。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
448 浏览 0 评论
971 浏览 0 评论
1695 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1349 浏览 1 评论
1246 浏览 1 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1270浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
936浏览 3评论
2368浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2555浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1063浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-8 10:33 , Processed in 0.969165 second(s), Total 44, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
467
