2017-03-04 1 views
2

모바일 장치가 액세스 할 수 있도록 내 esp8266을 액세스 지점으로 사용했습니다. 연결된 장치의 macAddress를 가져오고 싶습니다. 나는 어떻게 그것을 얻을 수 있 었는가?클라이언트의 Mac 주소를 esp8266에 연결하십시오.

+0

다른 작동? –

+0

ARP를 사용하지 않았는데 어떻게 esp8266에서 액세스 할 수 있습니까? – ABI

답변

3

나는 대답 from here

을 가지고 있으며 ARP를 통해보다

#include <ESP8266WiFi.h> 
#include <ESP8266WebServer.h> 

extern "C" { 
#include<user_interface.h> 
} 

/* configuration wifi */ 
const char *ssid = "COblaster"; 

ESP8266WebServer server(80); 

void handleRoot() { 
    server.send(200, "text/html", "<h1>You are connected</h1>"); 
    String addy = server.client().remoteIP().toString(); 
    Serial.println(addy); 
} 

void setup() { 
    delay(1000); 
    Serial.begin(115200); 
    Serial.println(); 
    Serial.print("Configuring access point..."); 
    WiFi.softAP(ssid); 
    IPAddress myIP = WiFi.softAPIP(); 
    Serial.print("AP IP address: "); 
    Serial.println(myIP); 
    server.on("/", handleRoot); 
    server.begin(); 
    Serial.println("HTTP server started"); 
} 

void loop() { 
    server.handleClient();  
    delay(5000); 
    client_status(); 
    delay(4000); 
} 

void client_status() { 

unsigned char number_client; 
struct station_info *stat_info; 

struct ip_addr *IPaddress; 
IPAddress address; 
int i=1; 

number_client= wifi_softap_get_station_num(); 
stat_info = wifi_softap_get_station_info(); 

Serial.print(" Total connected_client are = "); 
Serial.println(number_client); 

while (stat_info != NULL) { 

IPaddress = &stat_info->ip; 
address = IPaddress->addr; 

Serial.print("client= "); 

Serial.print(i); 
Serial.print(" ip adress is = "); 
Serial.print((address)); 
Serial.print(" with mac adress is = "); 

Serial.print(stat_info->bssid[0],HEX); 
Serial.print(stat_info->bssid[1],HEX); 
Serial.print(stat_info->bssid[2],HEX); 
Serial.print(stat_info->bssid[3],HEX); 
Serial.print(stat_info->bssid[4],HEX); 
Serial.print(stat_info->bssid[5],HEX); 

stat_info = STAILQ_NEXT(stat_info, next); 
i++; 
Serial.println(); 

} 
delay(500); 
} 
+0

그러나 액세스 포인트 (AP) 모드에서만 작동합니까? STA 모드에서이 작업을 수행하는 방법은 무엇입니까? – Codebeat

관련 문제