开源改变世界

在网络上寻找 GRBL ESP32 #929

推推 grbl 3年前 (2023-01-30) 169次浏览
关闭
BarbourSmith 打开了这个问题 2021 年 7 月 1 日 · 11 条评论
关闭

在网络上寻找 GRBL ESP32#929

BarbourSmith 打开了这个问题 2021 年 7 月 1 日 · 11 条评论

注释

在网络上寻找 GRBL ESP32 #929

你好,

我正在寻找一种快速简便的方法,让人们可以找到在他们的网络上运行 GRBL 的 ESP32 的 IP 地址。类似于 findmyGRBLESP32.com 的网站,它为您提供了指向 ESP 的 IP 地址的链接。这样人们就不必担心打开串行连接,我认为这可能会吓到非程序员。

我的第一个想法是使用 mDNS 系统,但我对它的研究越多,它就越依赖于平台、浏览器和网络偏好,这可能会导致混淆。

现在,我认为可能只需运行并检查 192.168 IP 地址系列中的所有地址。

我怀疑是否有一种方法可以在 100% 的网络设置和设备上运行,但我认为它应该可以在大多数基本设置上运行。

有没有人已经做过这方面的工作?有没有人对每个 IP 地址发出哪个请求以查看它是否是运行 GRBL 的 ESP32 有任何建议?

在网络上寻找 GRBL ESP32 #929
所有者

@luc-github

你对此有什么想法吗?

在网络上寻找 GRBL ESP32 #929
合作者
米奇布拉德利 评论了 2021 年 7 月 1 日  

Grbl_Esp32 已经支持 SSDP https://en.wikipedia.org/wiki/Simple_Service_Discovery_Protocol

如果您碰巧知道主机名,mDNS 可以让您找到一个 Grbl_Esp32 实例的 IP 地址。mdns 域中的默认主机名是 grblesp.local 但这是可配置的。如果你想搜索主机名,你需要采用一个名称模式,这样你的搜索程序就可以遍历一个名称列表——但是当你可以询问 SSDP 时,为什么还要这样做呢?

考虑到对 SSDP 的现有支持,IP 地址扫描对我来说似乎不是一个好主意。那个轮子已经被发明了。

在网络上寻找 GRBL ESP32 #929

您应该只在本地网络中使用 SSDP。从外部开放SSDP容易受到DDOS攻击。大多数路由器会自动阻止传入的 SSDP。由于 192.168.xx 等无法路由的子网的工作方式,从外部扫描 IP 地址无论如何都行不通。

在网络上寻找 GRBL ESP32 #929

SSDP 确实看起来不错,但据我所知,它不能从浏览器中调用。我可以为使用 SSDP 的不同操作系统创建可执行文件,但我的猜测是对于大多数人来说,安装程序的麻烦是不值得的。

我认为要成为一个有用的工具,它需要基于浏览器,这可能意味着扫描 IP 地址是唯一的选择,尽管它很糟糕。尽管可能有更多的理由表明这是一个坏主意,因为让它工作需要打开一些可能存在安全风险的跨源请求内容。

您能想到任何基于浏览器的选项来查找 ESP32 在网络上的位置吗?哪个更好?

当我做类似的事情时:

var xhr = new XMLHttpRequest();
xhr.open("POST", "http://192.168.0.133", true);

如果那个地址有一个 ESP32,那个请求在固件中的哪个位置?

在网络上寻找 GRBL ESP32 #929

我确实读过它,这是一个选项,但它是 chrome 的事实让我有点担心。感觉有点像网络正在成为 Chrome 独有的,我想避免参与其中。

我认为 id 喜欢尝试端口扫描,即使只是为了说服自己这是一个坏主意。

新传入请求在固件中的哪个位置?

在网络上寻找 GRBL ESP32 #929
所有者

加入我们的不和谐服务器

https://discord.gg/XDNH8WWbSc

在网络上寻找 GRBL ESP32 #929

代码将如何进入浏览器?它不能从 ESP32 本身提供服务,因为那是您要查找的内容。如果它是从某个外部网站提供的,您实际上是在要求用户运行一个网页,该网页可以扫描本地网络的端口。它与恶意软件之间的区别充其量只是微乎其微。

在网络上寻找 GRBL ESP32 #929
合作者

在本地网络上使用 SSDP 或 mDNS 将列出设备,但目前没有任何实现可以轻松识别基于 GRBL 或 ESP3D 的设备,特别是来自其他设备,它在路线图中使用额外的 MDNS 服务,但多服务 esp32 中存在错误核心是我测试它的时候,所以我推迟了实施:luc-github/ESP3D-WEBUI#85

使用 wan 地址扫描本地网络不是正确的方法 – 在最好的情况下它会被防火墙阻止,在最坏的情况下会被视为攻击。

主机名应该避免需要 IP 地址:
在网络上寻找 GRBL ESP32 #929

如果您因为更改了 esp 的名称而忘记了它,那么在 Windows 操作系统下它会出现在网络中的其他设备中,但您仍然需要在列出的设备中进行检查。

在 Linux 和 OSX 和 android 上,没有这样的功能,但他们有一些 mdsn 扫描仪,不幸的是我不知道哪个是跨​​平台的。

如果你想要一个简单的解决方案,跨操作系统,跨平台,你需要开发像 ip cam 搜索工具这样的东西:https ://wiki.instar.com/en/Quick_Installation/Alternative_IP_Scanner/将由用户在他的上运行本地网络,但不是来自互联网。

在网络上寻找 GRBL ESP32 #929

感谢 discord 的邀请,我将关闭这个问题并将对话移到那里似乎更合适的地方。

我同意所有说端口扫描丑陋和糟糕并且与恶意软件具有许多相同外在特征的人的观点……但与此同时我认为 GRBL ESP32 项目真正奇妙和美丽的事情之一是它允许任何可以连接到 wifi 并有浏览器控制机器的机器。人们可以使用旧的 Android 手机或旧电脑,如果他们身边有一台的话……但是没有一种简单的方法可以找到在许多平台上同样可用的机器,能力有限。对于我们很多人来说,从串行端口读取 IP 地址是微不足道的,但我认为还有更多的人不想学习计算机来用木头构建很酷的东西,而这些人会从更简单的连接中受益方法…如果可能的话。