在没有 public IP 的情况下同步 sqlite 文件
Synchronize sqlite files without a public IP
我正在尝试想出一种在两台计算机之间同步 sqlite 数据库的方法。
如果这是在具有 public IP 的机器上,这并不困难,但我正在尝试找到一种方法使它适用于任何两个设备,而且大多数计算机没有静态 IP.
我可以通过哪些方法解决这个问题?
假设您只需要找到对等 IP 地址...
将 Udp 数据包广播到局域网,如果机器是相同的局域网网段。您也可以尝试使用管理员范围的多播,但里程会根据网络设置和使用的设备而有所不同。
如果试图在互联网上找到两台机器(假设您可以解决 NAT 地址转换问题),您需要从一个将为您保存信息的节点反弹。例如,将数据包写入 dweet.io 或 sparkfun 或其他将保存存储和转发数据的网站。您还可以阅读推特提要等,基本上您也需要一个已知的参考点来进行交谈。研究恶意软件如何创建命令和控制网络以获得一些想法。或者搜索会合服务器和协议。
如果地址范围较小,则探测所有可能的地址。但要小心,因为您可能会触发反病毒或 ISP 操作
如果想要更多基于浏览器的内容,请查看 webrtc,虽然不是您想要的,但其中一些发现技术可能很有趣。
如果您有访问权限,您可以使用您的 DNS 记录。本质上这是 (2) 的变体。
也有更多选项,但这些选项有更多特殊用途,或者对于一般用途而言变得有点过于隐蔽。另请参阅网状网络是如何形成的。
我正在尝试想出一种在两台计算机之间同步 sqlite 数据库的方法。
如果这是在具有 public IP 的机器上,这并不困难,但我正在尝试找到一种方法使它适用于任何两个设备,而且大多数计算机没有静态 IP.
我可以通过哪些方法解决这个问题?
假设您只需要找到对等 IP 地址...
将 Udp 数据包广播到局域网,如果机器是相同的局域网网段。您也可以尝试使用管理员范围的多播,但里程会根据网络设置和使用的设备而有所不同。
如果试图在互联网上找到两台机器(假设您可以解决 NAT 地址转换问题),您需要从一个将为您保存信息的节点反弹。例如,将数据包写入 dweet.io 或 sparkfun 或其他将保存存储和转发数据的网站。您还可以阅读推特提要等,基本上您也需要一个已知的参考点来进行交谈。研究恶意软件如何创建命令和控制网络以获得一些想法。或者搜索会合服务器和协议。
如果地址范围较小,则探测所有可能的地址。但要小心,因为您可能会触发反病毒或 ISP 操作
如果想要更多基于浏览器的内容,请查看 webrtc,虽然不是您想要的,但其中一些发现技术可能很有趣。
如果您有访问权限,您可以使用您的 DNS 记录。本质上这是 (2) 的变体。
也有更多选项,但这些选项有更多特殊用途,或者对于一般用途而言变得有点过于隐蔽。另请参阅网状网络是如何形成的。