LLMNR(本地链路组播名称解析)在网络出现故障的情况下提供名称解析服务,同时也应用于建立临时对等网络方面。与之类似的协议为mDNS,已经在前面介绍和演示对应示例;在这里演示零知开源平台上面使用示例。
硬件我们本次使用零知-ESP8266;
软件使用零知开发工具,自带示例:
(1)先在零知开发工具中打开LLMNR_Web_Server示例,或者复制下面的代码到零知开发工具中:
#include <ESP8266WiFi.h>
#include <ESP8266LLMNR.h>
#include <ESP8266WebServer.h>
#include <WiFiClient.h>
#ifndef STASSID
#define STASSID "ssid"
#define STAPSK "passwd"
#endif
const char* ssid = STASSID;
const char* password = STAPSK;
ESP8266WebServer web_server(80);
void handle_http_not_found() {
web_server.send(404, "text/plain", "Not Found");
}
void handle_http_root() {
web_server.send(200, "text/plain", "It works!");
}
void setup(void) {
Serial.begin(115200);
// Connect to WiFi network
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
// Start LLMNR responder
LLMNR.begin("esp8266");
Serial.println("LLMNR responder started");
// Start HTTP server
web_server.onNotFound(handle_http_not_found);
web_server.on("/", handle_http_root);
web_server.begin();
Serial.println("HTTP server started");
}
void loop(void) {
web_server.handleClient();
}
(2)验证上传代码到零知-esp8266开发板;
(3)打开串口调试窗口,可以看到如下信息:
同时使用ping工具可以访问到 esp8266,说明工作正常;
(4)在浏览器里面打开网址:http://esp8266/
这个使用ip直接访问值一致的: