以编程方式获取直连设备的IP

时间:2014-12-15 19:59:03

标签: c multicast arp

使用C我试图在不知道有关设备的任何信息的情况下发现本地连接设备的IP。

[ my box ]--eth0--------------[ unknown device ]

我似乎无法找到arp / broadcast的方法来获取设备的IP。我知道如果我使用多播,设备本身必须是该组的成员。当我arp或arp-scan时,他们要求我为我的eth0接口分配一个IP,但我没有分配一个,如果需要,我可以放一个,但我不确定它需要设置为什么才能发现任何事情。

示例:我有一台Linksys无线IP摄像头,我想找到IP /子网。在不知道其子网/网络掩码的情况下,我不知道将eth0设置为什么。

我已经编写了一个C程序来解析Linux中的arp表,但我似乎无法从本地连接的设备中获取IP。如上所述,如果不将eth0设置为某些内容,我就无法使用这些工具。

1 个答案:

答案 0 :(得分:1)

我认为找到某些内容的最佳机会是捕获所有传入的网络流量,尤其是在未知设备启动时(使用tcpdumpwireshark或类似内容)。只需过滤掉从我的框发送的流量。

您很可能会看到DHCP请求和ARP请求。如果设备使用DHCP,最简单的解决方案是在eth0上运行DHCP服务器(因此您可以为此设备分配IP)。

如果由于某种原因您需要使用C编程(并且网络捕获会产生预期结果),libpcap可能会有用。

如果其他方法失败,您可以尝试使用伪造的ARP数据包切换未知的IP(因此您不需要在eth0上更改IP)并捕获任何响应。