如何在互联网上查找特定的主机/服务

问题描述

我试图弄清楚如何在互联网上找到特定机器/服务的IP地址。

一些背景。

我正在构建一个智能门铃。它由连接到集线器的门铃制成。集线器实现了各种“高级”功能。 (门铃和集线器)都位于同一局域网中,因此它们可以通过Zeroconf / mDNS相互发现。

现在,我想要的是能够通过智能手机应用程序查看门铃视频流,发送/接收语音以及命令开门的功能,即使我的智能手机“在路上”,通过移动网络或第三方无线网络。

问题是如何找到集线器?我不能使用Zeroconf,因为它是为本地网络制作的。 DNS是唯一的方法吗?在这种情况下,我应该设置一个无IP(或其他类似服务)帐户。

我已经看到商用相机和其他IoT设备与作为中继的制造商服务器“对话”。但是我想要一个分散的,无间谍的解决方案(我不信任他们)。

DNS是否是发现中心IP的唯一方法?显然,我需要设置NAT来允许传入连接(可能是UPnP !!!)。但这是另一个故事。

您有什么建议?

p.s。 IPFS是否可能解决?也许我可以在IPFS上发布中心IP

解决方法

实际上,我认为您至少需要一台服务器才能找到其他对等方,用于分散式下载的类似解决方案是DHT,其工作原理如下所示。

  1. DHT引导程序:连接到公共服务器以获取其他对等方的信息
  2. DHT查找:使用该信息查找其他对等方
  3. 对等连接:连接对等并更改信息

在提到NAT和Upnp时,您可以首先检查Nat-Pmp或Upnp是否在您的设备中工作,否则,也许您需要使用ICE。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...