auto authorization with my MAC address

Hello I gathered various taken home that I manage with a small webserver install on a esp8268
in C ++ kind arduino
And I would like to know if there are means not of this logger to be able to access it (the goal is not to waste time)
But that the module detects my MAC address (which I would have entered my code) and allows me access automatically?
Thank you
I did some research but I can not find any conclusive code example

You post sounds like machine translated. Unfortunately the machine did a lousy job as it's not really understandable. As far as I understand you have setup an ESP8266 (as the ESP8268 doesn't exist) to host a small web server. But the relation to the MAC address is not clear. Do you try to authenticate to that web server using your PC's MAC address? Or do you try to get an IP address using DHCP (which also involves authorization by MAC address)? Or do you try to access some other web server and want to use the configured MAC address to authenticate there?

hello yes , sorry i use sometime google translation …
i test without translation :smiley:

Yes i want to authenticate to that web server using your PC’s MAC address.
Because i find some code to auth with password but I can not merge it with my webserver …
I am a beginner and I can not do it …
I try since many days … but i cant

if you can help me for this it will be great :smiley:

my code is here :

it work perfekly

thank you very much for your help

// Load Wi-Fi library
#include <ESP8266WiFi.h>

// Replace with your network credentials
const char* ssid     = "UPC1D148D6";
const char* password = "w6akjznbjYmh";

// Set web server port number to 80
WiFiServer server(80);

// Variable to store the HTTP request
String header;

// Auxiliar variables to store the current output state
String relay1State = "eteint";
String relay2State = "eteint";
String relay3State = "eteint";
String relay4State = "eteint";

// Assign output variables to GPIO pins
const int relay1 = 5; // GPIO5 D1
const int relay2 = 4; // GPIO4 D2
const int relay3 = 0; // GPIO0 D3
const int relay4 = 2; // GPIO2 D4

void setup() {
  Serial.begin(115200);
  // Initialize the output variables as outputs
  pinMode(relay1, OUTPUT);
  pinMode(relay2, OUTPUT);
  pinMode(relay3, OUTPUT);
  pinMode(relay4, OUTPUT);
  // Set outputs to HIGH. relay active LOW
  digitalWrite(relay1, LOW);
  digitalWrite(relay2, LOW);
  digitalWrite(relay3, LOW);
  digitalWrite(relay4, LOW);

  // Connect to Wi-Fi network with SSID and password
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  // Print local IP address and start web server
  Serial.println("");
  Serial.println("WiFi connected.");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  server.begin();
}

void loop() {
  WiFiClient client = server.available();   // Listen for incoming clients

  if (client) {                             // If a new client connects,
    Serial.println("New Client.");          // print a message out in the serial port
    String currentLine = "";                // make a String to hold incoming data from the client
    while (client.connected()) {            // loop while the client's connected
      if (client.available()) {             // if there's bytes to read from the client,
        char c = client.read();             // read a byte, then
        Serial.write(c);                    // print it out the serial monitor
        header += c;
        if (c == '\n') {                    // if the byte is a newline character
          // if the current line is blank, you got two newline characters in a row.
          // that's the end of the client HTTP request, so send a response:
          if (currentLine.length() == 0) {
            // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
            // and a content-type so the client knows what's coming, then a blank line:
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println("Connection: close");
            client.println();

            // turns the GPIOs on and off
            if (header.indexOf("GET /5/on") >= 0)
            {
              Serial.println("GPIO 5 on");
              relay1State = "allumer";
              digitalWrite(relay1, HIGH);
            }
            else if (header.indexOf("GET /5/off") >= 0)
            {
              Serial.println("GPIO 5 off");
              relay1State = "eteinte";
              digitalWrite(relay1,  LOW);
            }
            else if (header.indexOf("GET /4/on") >= 0) 
            {
              Serial.println("GPIO 4 on");
              relay2State = "allumer";
              digitalWrite(relay2, HIGH);
            }
            else if (header.indexOf("GET /4/off") >= 0)
            {
              Serial.println("GPIO 4 off");
              relay2State = "eteinte";
              digitalWrite(relay2,  LOW);
            }
            else if (header.indexOf("GET /0/on") >= 0)
            {
              Serial.println("GPIO 0 on");
              relay3State = "allumer";
              digitalWrite(relay3, HIGH);
            }
            else if (header.indexOf("GET /0/off") >= 0)
            {
              Serial.println("GPIO 0 off");
              relay3State = "eteinte";
              digitalWrite(relay3,  LOW);
            }
            else if (header.indexOf("GET /2/on") >= 0) 
            {
              Serial.println("GPIO 2 on");
              relay4State = "allumer";
              digitalWrite(relay4, HIGH);
            }
            else if (header.indexOf("GET /2/off") >= 0) 
            {
              Serial.println("GPIO 2 off");
              relay4State = "eteinte";
              digitalWrite(relay4, LOW);
            }

            // Display the HTML web page
            client.println("<!DOCTYPE html><html>");
            client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
            client.println("<link rel=\"icon\" href=\"data:,\">");
            // CSS to style the on/off buttons
            // Feel free to change the background-color and font-size attributes to fit your preferences
            client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}");
            client.println(".button { background-color: #195B6A; border: none; color: white; padding: 12px 24px;");
            client.println("text-decoration: none; font-size: 20px; margin: 2px; cursor: pointer;}");
            client.println(".button2 {background-color: #77878A;}</style></head>");

            // Web Page Heading
            client.println("<body><h1>Systeme domotique wifi</h1>");

            // Display current state, and ON/OFF buttons for GPIO 5
            client.println("<p>Petite lampe - Actuellement " + relay1State + "</p>");
            // If the relay1State is off, it displays the ON button
            if (relay1State == "eteinte") {
              client.println("<p><a href=\"/5/on\"><button class=\"button\">Allumer</button></a></p>");
            } else {
              client.println("<p><a href=\"/5/off\"><button class=\"button button2\">Eteindre</button></a></p>");
            }

            // Display current state, and ON/OFF buttons for GPIO 4
            client.println("<p>Lampe de Sel - Actuellement " + relay2State + "</p>");
            // If the relay2State is off, it displays the ON button
            if (relay2State == "eteinte") {
              client.println("<p><a href=\"/4/on\"><button class=\"button\">Allumer</button></a></p>");
            } else {
              client.println("<p><a href=\"/4/off\"><button class=\"button button2\">Eteindre</button></a></p>");
            }

            // Display current state, and ON/OFF buttons for GPIO 0
            client.println("<p>Android BOX - Actuellement " + relay3State + "</p>");
            // If the relay1State is off, it displays the ON button
            if (relay3State == "eteinte") {
              client.println("<p><a href=\"/0/on\"><button class=\"button\">Allumer</button></a></p>");
            } else {
              client.println("<p><a href=\"/0/off\"><button class=\"button button2\">Eteindre</button></a></p>");
            }

            // Display current state, and ON/OFF buttons for GPIO 2
            client.println("<p>TV - Actuellement " + relay4State + "</p>");
            // If the relay2State is off, it displays the ON button
            if (relay4State == "eteinte") {
              client.println("<p><a href=\"/2/on\"><button class=\"button\">Allumer</button></a></p>");
            } else {
              client.println("<p><a href=\"/2/off\"><button class=\"button button2\">Eteindre</button></a></p>");
            }

            client.println("</body></html>");

            // The HTTP response ends with another blank line
            client.println();
            // Break out of the while loop
            break;
          } else { // if you got a newline, then clear currentLine
            currentLine = "";
          }
        } else if (c != '\r') {  // if you got anything else but a carriage return character,
          currentLine += c;      // add it to the end of the currentLine
        }
      }
    }
    // Clear the header variable
    header = "";
    // Close the connection
    client.stop();
    Serial.println("Client disconnected.");
    Serial.println("");
  }
}

Yes i want to authenticate to that web server using your PC's MAC address.
Because i find some code to auth with password but I can not merge it with my webserver ...

The MAC address of the connecting client is not available but the IP address is available. Just ensure your PC always get the same IP address from your router and you can use that to authenticate.

But I don't see why you have to use authentication in your local network anyway. Are there other PCs in your local network that must have access denied?

hello i need auth because a use this with my Iphone or a PC around the world

The ip is never the same..

hello i need auth because a use this with my Iphone or a PC around the world

The MAC will be the same for everyone trying to connect, even me connecting to your setup. Your Arduino will always see the MAC address of your router as the MAC address is used only at the Ethernet layer of the local network.

I would not make the ESP available to the public internet. But if you decide to do it, you have to configure your router first to forward traffic to it, otherwise you won’t reach it from the internet. And you have to make the current IP of your router available to your phone. How have you planned to do that? Do you have a fixed IP address at your home?

And you will have to implement basic auth into your server to have authentication. The corresponding example shows you how to do that.

Hello m’y Router is configur for that..
And now i use Blynk for doing the Job .

Is better for a noob like me..

Thank you very at all .