查找直连设备的IP地址

有没有办法找出直接连接到特定以太网接口的设备的IP地址? 即给一个主机,一个有线以太网连接和一个连接到这个有线连接的第二个主机,可以使用IP以下的层或协议来找出这个问题。

我也会习惯使用一些Windows API函数或callback的仅Windows解决scheme。

(我知道这样做的真正方法可能是通过DHCP,但这是发现一个传统的设备。)

要使用DHCP,您必须在主服务器上运行DHCP服务器,在次服务器上运行客户端; 然后主服务器可以查询服务器,找出它分发的地址。 可能矫枉过正。

我无法直接帮助你与Windows。 在Unix上,“arp”命令会告诉你哪些IP地址已知连接到本地以太网段。 Windows将有相同的信息(因为它是IP /以太网接口的核心部分),但我不知道你是如何得到它的。

当然,网络堆栈只会知道其他主机,如果它曾经看到它的流量。 您可能必须首先在接口上发送广播数据包以引发某种响应,从而填充本地ARP表。

嗯…有很多方法。 我回答了另一个网络发现问题,我写了一些入门知识 。

一些tcpip堆栈回复icmp广播。 所以你可以尝试PING到你的网络广播地址。

例如,您有ip 192.168.1.1和子网255.255.255.0

  1. ping 192.168.1.255
  2. 5秒后停止ping
  3. 看设备回复:arp -a

注意:在步骤3中,您将获得MAC-to-IP缓存条目的列表,因此即使您没有回复icmp_get,也可以在您的子网中在最后几分钟内交换数据。

注(2):现在我在linux上。 我不确定,但可以通过广播窗口不回复icm_get。

它是唯一一个设备连接到您的电脑? 它是一个路由器或另一个简单的PC?

您的最佳方法是安装Wireshark,重启设备等待TCP / UDP流,广播将宣布两个以太网端口的IP地址当连接的设备没有启用DHCP客户端时,这是特别有用的,那么您可以从那里。

您还可以从直接连接的网络设备获取信息,例如使用github上发布的便携式免费Windows程序LDWin的网络交换机:

http://www.sysadmit.com/2016/11/windows-como-saber-la-ip-del-switch-al-que-estoy-conectado.html

LDWin支持以下链路发现方法:CDP(思科发现协议)和LLDP(链路层发现协议)。

您可以获取型号,管理IP,VLAN标识符,端口标识符,固件版本等。