ESP8266,当连接到 AP 时,请求特定的 IP 或可发现的主机名?

ESP8266, when connecting to AP, requesting sepcific IP or discoverable host name?

ESP8266代码中有没有办法向路由器询问特定IP?我的意思是,在下面的例子中(我从网上复制的),它得到“192.168.1.3”。 “3”部分是自动分配的,下次可能会更改。我希望这个数字是一个特定的数字。我知道我可以修改路由器设置来添加静态 IP,但至少对于我的路由器来说,添加静态 IP 既慢又不方便。我可能会交换 ESP8266 板和 运行 相同的代码。路由器是我的,只有我自己用,所以如果我需要更改路由器的一些设置来允许客户端的这种请求,我可以做到。

如果没有这样的功能,我可以让 ESP8266 可以通过特定名称发现吗(同样,不在路由器设置中创建转换条目,而是在 ESP 代码中)?例如,如果 ESP8266 运行 是一个网络服务器,我可以通过“http://myserver1”而不是“http://192.168.1.3”之类的东西访问网络服务器吗?

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

const char* ssid     = "SSID";         // The SSID (name) of the Wi-Fi network you want to connect to
const char* password = "PASSWORD";     // The password of the Wi-Fi network

void setup() {
  Serial.begin(115200);         // Start the Serial communication to send messages to the computer
  delay(10);
  Serial.println('\n');
  
  WiFi.begin(ssid, password);             // Connect to the network
  Serial.print("Connecting to ");
  Serial.print(ssid); Serial.println(" ...");

  int i = 0;
  while (WiFi.status() != WL_CONNECTED) { // Wait for the Wi-Fi to connect
    delay(1000);
    Serial.print(++i); Serial.print(' ');
  }

  Serial.println('\n');
  Serial.println("Connection established!");  
  Serial.print("IP address:\t");
  Serial.println(WiFi.localIP());         // Send the IP address of the ESP8266 to the computer
}

几乎所有的路由器都有DHCP Server。您可以做的是为您的 ESP8266s MAC 地址创建一个 DHCP Reservation

对于域名,您可以在本地 PC 中创建主机条目。像这样,

192.168.1.3 myserver1

更新

我找到了 this 可以回答静态 IP 配置的教程。

域名解析由 DNS Server. 完成 因为您没有 public IP 或实际域名,您的 IP 将无法解析任何DNS Servers在那里。所以你可以做的是在你的路由器中创建一个 DHCP 主机条目(创建这个主机条目也在上面的教程中完成)或者在你的本地 PC 中创建一个主机条目。

注意:我目前没有 NodeMCU 模块。否则我可以自己试试这个。