mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-12 01:53:07 +03:00
DHCP custom option (#8582)
* works * fixup! works * back to callbacks * names * daisy chain * seconds * less inline * fix dns setter * might as well keep using initlist /to d-a-v it has automatic storage, here it's the same stack based one (just one less line for us) * shift blame * naming * fix impl * revert to ip4 dns * merge fix * restyle * masking done wrong
This commit is contained in:
20
libraries/ESP8266WiFi/examples/CustomOffer/CustomOffer.ino
Normal file
20
libraries/ESP8266WiFi/examples/CustomOffer/CustomOffer.ino
Normal file
@ -0,0 +1,20 @@
|
||||
#include <Arduino.h>
|
||||
#include <ESP8266WiFi.h>
|
||||
|
||||
void setup() {
|
||||
auto& server = WiFi.softAPDhcpServer();
|
||||
server.onSendOptions([](const DhcpServer& server, auto& options) {
|
||||
// VENDOR is... vendor specific
|
||||
options.add(43, { 0xca, 0xfe, 0xca, 0xfe, 0xfe });
|
||||
|
||||
// Captive Portal URI
|
||||
const IPAddress gateway = netif_ip4_addr(server.getNetif());
|
||||
const String captive = F("http://") + gateway.toString();
|
||||
options.add(114, captive.c_str(), captive.length());
|
||||
});
|
||||
WiFi.softAP("TEST", "testtesttest");
|
||||
}
|
||||
|
||||
void loop() {
|
||||
delay(100);
|
||||
}
|
@ -52,10 +52,13 @@ void setup() {
|
||||
}
|
||||
Serial.printf("\nSTA: %s (dns: %s / %s)\n", WiFi.localIP().toString().c_str(), WiFi.dnsIP(0).toString().c_str(), WiFi.dnsIP(1).toString().c_str());
|
||||
|
||||
// give DNS servers to AP side
|
||||
// By default, DNS option will point to the interface IP
|
||||
// Instead, point it to the real DNS server.
|
||||
// Notice that:
|
||||
// - DhcpServer class only supports IPv4
|
||||
// - Only a single IP can be set
|
||||
auto& server = WiFi.softAPDhcpServer();
|
||||
server.dhcps_set_dns(0, WiFi.dnsIP(0));
|
||||
server.dhcps_set_dns(1, WiFi.dnsIP(1));
|
||||
server.setDns(WiFi.dnsIP(0));
|
||||
|
||||
WiFi.softAPConfig( // enable AP, with android-compatible google domain
|
||||
IPAddress(172, 217, 28, 254), IPAddress(172, 217, 28, 254), IPAddress(255, 255, 255, 0));
|
||||
|
Reference in New Issue
Block a user