首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改本地网络上网页的url

更改本地网络上网页的url
EN

Stack Overflow用户
提问于 2022-02-26 11:23:32
回答 2查看 175关注 0票数 0

我在一个ESP32芯片上建立了一个网页,负责创建一个接入点,允许我的计算机连接以访问这个页面。

目前,我只能通过在浏览器中输入ESP的IP来访问它,但这可能非常麻烦。

我想知道是否可以用单词而不是ESP的IP来更改页面的url。

也许我错过了一些技术术语,但我没有在互联网上找到任何解决方案。

PS:我使用带套接字的微蟒从板上提供html文件:

代码语言:javascript
复制
def handleClient(client_socket):
    headers, data = loadRequest(client_socket.recv(1024).decode('utf-8'))
    # print('[*] Received:\n%s\n%s\n' % (headers, data))
    if headers['method'] == 'GET' and '/connect' == headers['route']:#'/connect' in headers['route']:
        ssid, password, status, code = connect(headers)
        client_socket.sendall(RESPONSE_TEMPLATE % (code, status, {'ssid': ssid, 'password': password}, code))
        return ssid, password
    elif headers['method'] == 'GET' and headers['route'] == '/':
        renderWebPage(client_socket)
    client_socket.close()
    return None, None
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-27 16:06:49

有两个部分需要解决你的问题:

  1. 发布名称(使用mdns)
  2. 从客户端解析该名称

MicroPython从1.12版本开始就内置了对mdns的支持。基本代码是使用以下代码分配主机名:

代码语言:javascript
复制
wlan.config(dhcp_hostname="prettyname")

请注意,您的客户端还需要有mdns支持才能解析该地址。这可能/将取决于你的客户。

完整的样本如下:

代码语言:javascript
复制
import network
wlan = network.WLAN(network.STA_IF)
if not wlan.isconnected():
    wlan.active(True)
    mac = wlan.config('mac')
    host = "prettyname"
    wlan.config(dhcp_hostname = host)
    wlan.connect('myssid', 'mypassword')
    while not wlan.isconnected():
        pass
        
host = wlan.config('dhcp_hostname')
print('Wifi connected as {}/{}, net={}, gw={}, dns={}'.format(
    host, *wlan.ifconfig()))

资料来源: MicroPython论坛

票数 2
EN

Stack Overflow用户

发布于 2022-02-26 19:31:46

当然。最简单的选择是启用mDNS。这允许同一本地网络中的主机将设备的名称(例如espressif.local)解析为其IP。只在本地网络中工作,并且需要计算机上的mDNS客户端(Mac、Linux和Windows都倾向于在最近构建它)。

不过,我不知道如何在Micropython中这样做。给谷歌一个尝试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71276214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档