当两台机器的ip地址不断变化时,它们如何检测到对方?



让我来描述一下我想要实现的目标和我所遇到的困难。建议一个完全不同的选择是可以的。

    我的Android手机有NFC功能。我有一台macbook pro。
  1. wifi网络。

每当我在手机上点击某个NFC标签时,我希望我的Macbook运行某个脚本。

所以我做了如下操作

  1. 当设备检测到特定的NFC标签时调用的android应用程序。
  2. 我的Macbook运行一个NodeJS HTTP服务器
  3. Android应用程序发送一个HTTP请求到NodeJS, NodeJS然后调用我想要运行的任何脚本。

这个设置在我家里工作得很好,我可以把Macbook的IP地址设置成我想要的任何地址。但当我在星巴克(或工作场所),而且我的安卓和Macbook都在同一个Wifi网络上时,我希望同样的设置能透明地工作。(我不想手动输入IP地址)。

当我读到一半的时候,我意识到我可以在Macbook上使用蓝牙功能,但这样我可能不得不在Macbook上编写一个复杂的程序来收听Android设备并接受命令。

在Android上,使用Network Service Discovery。如果您使用的是较早的目标,jmDNS是您的朋友。我只使用它来允许android设备相互查找,但这应该与Mac上的bonjour服务兼容。

解决方案#1
使用网络服务发现技术。我可能会建议零配置,苹果实现为"你好"

解决方案# 2
有一个已知IP地址的第三个设备来记录其他设备的IP(本质上就是DNS)

解决方案# 3
将你的WiFi网络设置为静态IP:将预定义的IP分配给具有特定MAC地址的计算机(这样客户端仍然可以使用"DHCP",但路由器将始终分配相同的本地IP)

我会研究动态dns。您可以使用它自动更新更改IP地址的计算机的dns名称。

最新更新