#include "WiFi.h"
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_MODE_STA);
esp_wifi_set_promiscuous(true);
esp_wifi_set_promiscuous_filter(&filter);
esp_wifi_set_promiscuous_rx_cb(&sniffer_callback);
esp_wifi_start();
}
void loop() {
// Nothing to do here - everything happens in the callback
}
void sniffer_callback(void* buf, wifi_promiscuous_pkt_type_t type) {
const wifi_promiscuous_pkt_t *ppkt = (wifi_promiscuous_pkt_t *)buf;
Serial.print("Packet: ");
for (int i = 0; i < ppkt->rx_ctrl.sig_len; i++) {
Serial.print(ppkt->payload[i], HEX);
Serial.print(" ");
}
Serial.println();
}
wifi_promiscuous_filter_t filter = {
.filter_mask = WIFI_PROMIS_FILTER_MASK_ALL,
};