有没有一种方法可以找出直接连接到特定以太网接口的设备的IP地址?即,给定一个主机、一个有线以太网连接和连接到此有线连接的第二个主机,哪个位于IP下面的层或协议可用于查找这个信息。
我也可以使用仅限于Windows的解决方案,使用某些Windows-API函数或回调。
(我知道真正的方法可能是通过DHCP,但这是关于发现遗留设备的。)
使用DHCP, 您需要在主机上运行DHCP服务器并在从机上运行客户端。然后主机可以查询服务器以查找其发放的地址,这可能有些冗余。
我无法直接帮助您处理Windows。在Unix上,“arp”命令将告诉您已知连接到本地以太网段的IP地址。Windows也具有相同的信息(因为它是IP/Ethernet接口的核心部分),但我不知道如何访问它。
当然,网络堆栈只会在先前看到来自其他主机的流量时才会知道该主机。您可能需要在接口上首先发送广播数据包以获取某种响应,从而填充本地ARP表。
Windows 7内置了arp命令。 arp -a可以显示与您的系统连接的静态和动态类型接口。