注释
你对此有什么想法吗? |
Grbl_Esp32 已经支持 SSDP https://en.wikipedia.org/wiki/Simple_Service_Discovery_Protocol。 如果您碰巧知道主机名,mDNS 可以让您找到一个 Grbl_Esp32 实例的 IP 地址。mdns 域中的默认主机名是 grblesp.local,但这是可配置的。如果您想搜索主机名,则需要采用名称模式,以便您的搜索程序可以遍历名称列表 – 但是当您可以询问 SSDP 时为什么要这样做? 鉴于对 SSDP 的现有支持,IP 地址扫描对我来说似乎是个坏主意。那个轮子已经被发明出来了。 |
您应该只在本地网络中使用 SSDP。从外部打开 SSDP 容易受到 DDOS 攻击。大多数路由器会自动阻止传入的 SSDP。由于无法路由的子网(如 192.168.xx)的工作方式,从外部扫描 IP 地址无论如何都不起作用。 |
SSDP 看起来不错,但据我所知,它不能从浏览器中调用。我可以为使用 SSDP 的不同操作系统创建可执行文件,但我的猜测是,对于大多数人来说,安装程序的麻烦是不值得的。 我认为要成为一个有用的工具,它需要基于浏览器,这可能意味着扫描 IP 地址是唯一糟糕的选择。尽管可能有更多的原因表明这是一个坏主意,因为要使其工作需要打开一些可能存在安全风险的跨源请求内容。 你能想到任何基于浏览器的选项来查找 ESP32 在网络上的哪个位置会更好吗? 当我做类似的事情时:
如果该地址有 ESP32,该请求在固件中的哪个位置登陆? |
我确实读过它,这是一个选择,但它是铬的事实只会让我有点担心。感觉有点像网络正在成为 Chrome 的专属,我想避免参与其中。 我认为如果只是为了说服自己这是一个坏主意,我想尝试端口扫描。 新的传入请求在固件中的哪个位置登陆? |
代码将如何进入浏览器?它不能从 ESP32 本身提供,因为那是你想要找到的。如果它是从某个外部网站提供的,那么您实际上是在要求用户运行一个端口扫描本地网络的网页。这与恶意软件之间的区别充其量是非常薄的。 |
在本地网络上使用 SSDP 或 mDNS 将列出设备,但目前没有任何实现可以轻松识别基于 GRBL 或 ESP3D 的设备,特别是从其他设备,它在使用额外 MDNS 服务的路线图中,但在多服务 esp32 中存在错误我测试它的核心,所以我推迟了实现:luc-github/ESP3D-WEBUI#85 使用 wan 地址扫描本地网络不是正确的方法 – 在最好的情况下会被防火墙阻止,在最坏的情况下会被视为攻击。 如果您不记得您的 esp 的名称,因为您更改了它,那么在 Windows 操作系统下,它会出现在网络中的其他设备中,但您仍然需要在列出的设备中进行检查。 在 Linux 和 OSX 和 android 上,没有这样的功能,但他们有一些 mdsn 扫描仪,不幸的是我不知道哪个是跨平台的。 如果您想要一个简单的解决方案、跨操作系统、跨平台,您需要开发类似 ip cam 搜索工具:https ://wiki.instar.com/en/Quick_Installation/Alternative_IP_Scanner/将由用户在他的本地网络,但不是来自互联网。 |
感谢不和谐的邀请,我将关闭这个问题并将对话移到那里,这似乎是一个更合适的地方。 我同意所有说端口扫描丑陋和糟糕的人的观点,并且与恶意软件具有许多相同的外在特征……但同时我认为关于 GRBL ESP32 项目的真正奇妙和美丽的事情之一是它允许任何可以连接到 wifi 并具有浏览器控制机器的机器。人们可以使用旧的 android 手机或旧电脑,如果他们有一个闲置的…但是没有一种简单的方法可以找到在许多平台上同样可用的机器,这种机器的能力是有限的。对于我们很多人来说,从串口读取 IP 地址是微不足道的,但我认为还有更多的人不想学习计算机来用木头制造很酷的东西,他们会从更简单的连接中受益方法……如果可能的话。 |
服务发现问题并不特定于 Grbl_Esp32。 |
巴伯史密斯 评论 on 1 Jul 2021
你好,
我正在寻找一种快速简便的方法,让人们可以在他们的网络上找到运行 GRBL 的 ESP32 的 IP 地址。findmyGRBLESP32.com 之类的东西,它为您提供了指向 ESP 的 IP 地址的链接。这样人们就不必担心打开串行连接,我认为这可能会让非程序员感到害怕。
我的第一个想法是使用 mDNS 系统,但我研究得越多,似乎平台、浏览器和网络首选项依赖的越多,这可能会导致混淆。
现在我认为有可能只运行并检查 192.168 系列 IP 地址中的所有地址。
我怀疑是否有一种方法可以在 100% 的网络设置和设备上运行,但我认为在大多数基本设置上应该是可行的。
有没有人做过这方面的工作?有没有人对每个 IP 地址提出哪个请求以查看它是否是运行 GRBL 的 ESP32 有任何建议?