ا سلام من می خوام برای یک پروژه ، زمانی که esp8266 در حالت AP پیکربندی شده ، با بررسی آدرس مک کلاینتهایی که یم خواند به esp وصل بشند، اجازه دسترسی یا عدم دسترسی رو صادر کنم و بعضی از کلاینت ها رو ریجکت کنم.
در بررسیهایی که انجام دادم به چند نکته رسیدم :
1- زمانی که تنظیمات ap رو با دستور WiFi.softap انجام میدیم ، یکی از آرگومانهای این متد تنظیم حداکثر تعداد کانکشن مجاز هست.مثلا اگر من این عدد رو روی 1 تنظیم کنم و در حال حال حاضر یک کلاینت بهش متصل باشه،کلاینت دوم به محض تلاش برای اتصال فورا ریجکت میشه. و متاسفانه هر چه تلاش کردم که تابعی که در بک اند داره این کار رو انجام میده ، پیدا کنم نتونستم و فقط میرسیدم جایی که توابع تعریف میشدند و بدنه تابع رو نتونستم پیدا کنم. از این نکته فهمیدم که esp8266 توان ریجکت کلاینت رو داره
2- در بررسیهام توی نت به یک کد رسیدم که داره یک بسته داده میفرسته اما وقتی با نرم افزار wireshark چک کردم همچین پکیج داده ای ارسال نمیشه که فکر می کنم دو حالت محتمل هست و اون هم اینه که یا پکیج ارسال نمیشه یا اینکه من نتونستم پکیج رو خوب ردیابی کنم و اون کد رو در انتهای کدش رو می نویستم
3- یک پروژه دیدم که اساسا کارش قطع اتصال کلاینت از سرورشون هست و یه جور ابزار هک هست و اون هم داره تو یه قسمتهاییش پکیجی رو با دستور
wifi_send_pkt_freedom(deauthPacket, packSize, 0); ارسال می کنه اما چون لوازم تست پروژه رو نداشتم نتونستم تست کنم و در هر چی هم تلاش کردم که بفهمم این پکیج داده چه مقادیری رو داره ، نتونستم که لینکش : Download | ESP8266 Deauther.
ممنون میشم اگر کسی بهم کمک کنه خیلی ضروری هست برام
با تشکر
void deauthStation(const uint8_t* mac) {
const uint8_t packSize = 26; // اندازه بسته Deauthentication
uint8_t deauthPacket[packSize]; // تعریف آرایه برای بسته Deauthentication
deauthPacket[0] = 0xc0; // تنظیم فریم کنترل
deauthPacket[1] = 0x00; // تنظیم مدت زمان
deauthPacket[2] = 0x3a; // تنظیم شماره توالی
deauthPacket[3] = 0x01; // تنظیم شماره توالی
memcpy(&deauthPacket[4], mac, 6); // کپی کردن آدرس MAC مقصد (کلاینت) در بسته
memcpy(&deauthPacket[10], WiFi.softAPmacAddress(), 6); // کپی کردن آدرس MAC منبع (AP) در بسته
memcpy(&deauthPacket[16], WiFi.softAPmacAddress(), 6); // کپی کردن BSSID (AP) در بسته
deauthPacket[22] = 0x07; // تنظیم کد دلیل (کلاس 3، فریم دریافت شده از STA غیرمتصل)
deauthPacket[23] = 0x00; // تنظیم کد دلیل (ادامه)
deauthPacket[24] = 0x00; // تنظیم شماره توالی
deauthPacket[25] = 0x00; // تنظیم شماره قطعه
// ارسال بسته Deauthentication برای قطع اتصال کلاینت
wifi_send_pkt_freedom(deauthPacket, packSize, 0);
}
در قسمت کد دلیل من کد 1 و 5 رو هم تست کردم که باز جواب نداد.