我试图构建一台嵌入式设备,该设备将连接到路由器。但我希望能够使用PC或移动设备知道该设备是否已连接到路由器。
例如: PC如何检测Google Chromecast是否连接到同一网络?
我需要依次与网络中的每个IP通信并询问特定端口吗? 还是我需要让嵌入式设备每N秒广播一些信息?
谢谢。
例如: PC如何检测Google Chromecast是否连接到同一网络?
我需要依次与网络中的每个IP通信并询问特定端口吗? 还是我需要让嵌入式设备每N秒广播一些信息?
谢谢。
无论如何,你应该考虑在嵌入式设备上执行自发的 ARP。自发的ARP会向局域网中的所有设备宣布新设备已加入,以便它们可以更新其ARP缓存。
至于PC /移动设备如何发现您的嵌入式设备,您有几个选项:
如果我们可以假设这是一个典型的家庭网络,其中所有设备都在单个子网上,并且有一个网关路由器*,那么您可以为嵌入式设备分配一个唯一的OUI。如果您打算销售此设备,则需要向IEEE申请OUI,除非制造芯片组的公司已经提供了MAC地址。您的PC /移动应用程序可以定期检查其ARP缓存,以查找与您期望的唯一OUI匹配的OUI。
如果网络不是平面的,有多个路由子网或VLANS,则此方法将无法正常工作。这里是可能的情况:假设您的嵌入式设备连接到客户端桥接器范围扩展器。如果您的PC /移动应用程序在主要接入点上,它永远不会看到嵌入式设备的MAC地址-相反,它将看到客户端桥接器的MAC地址。多个IP将映射到客户端桥接器,因为客户端桥接器和客户端桥接器将切换数据包。