esp8266 免费wifi强推广告神器(4) 发现当前WIFI下的用户数目,IP,mac地址,在用户请求跳转后跳转

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

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

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

ESP8266WebServer server(80); 
bool wifiopen=1;


String HtmlCreat(String addstring){
  
  String newhtml=String()+"<!DOCTYPE html>\r\n "
  + "<html lang=\"zh-CN\"> \r\n"
  +" <meta http-equiv='Content-type' content='text/html; charset=utf-8'>\r\n"
  +"<title>  </title>\r\n"
  +"</head>\r\n"
  +"<body>\r\n"
  +addstring
  //+"<p> 显示一条文字信息! </p>\r\n"
  //+"<script type=\"text/javascript\">\r\n"  + " window.location = \"http://192.168.4.1/\";\r\n"+ "</script>\r\n"
  +"</body>\r\n"
  +"</html>";
  return newhtml;
  }


  
void handleRoot() { 
    String newhtml=String()+"<script type=\"text/javascript\">\r\n"  + "setTimeout(\"alert("")\", 3000);" +" window.location = \"http://www.baidu.com/\";\r\n"+ "</script>\r\n";
    server.send(200, "text/html",HtmlCreat(newhtml) );
  //  server.send(200, "text/html", "<h1>You are connected</h1>"); 
    String addy = server.client().remoteIP().toString(); 
    Serial.println(addy); 
    Serial.println(server.client().remotePort(),1); 
    Serial.println("stopAll"); 
    server.client().stop();
    WiFi.softAPdisconnect(1);
    wifiopen=0;
    
} 
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(); 
String numbers_client=String( wifi_softap_get_station_num()); 
stat_info = wifi_softap_get_station_info(); 

Serial.print(" Total connected_client are = "); 
Serial.println(number_client); 
if(numbers_client.toInt()==0){ if(wifiopen==0){Serial.println(" go"); wifiopen=1;   WiFi.softAP(ssid);}}

while (stat_info != NULL) { 

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

Serial.print("client= "); 

Serial.print(i); 
Serial.print(" ip adress is = "); 
Serial.print((stat_info->ip.addr)); 
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); 
} 

  

猜你喜欢

转载自www.cnblogs.com/kekeoutlook/p/10627846.html
今日推荐