发现没有DHCP的默认网关

时间:2010-05-21 06:04:57

标签: c dhcp gateway

一个疯狂的问题,但无论如何都要发现没有DHCP的默认网关?

这适用于网络中不使用尚未拥有IP地址的DHCP的设备。我在想是否可以发现默认网关,然后我可以尝试猜测一个未使用的IP地址,然后在网络上广播以查看它是否正在使用。

我理解可能会遇到麻烦。例如。如果已经有一台具有静态IP并且已关闭的计算机。

3 个答案:

答案 0 :(得分:7)

答案 1 :(得分:3)

可以做但不是很简单(根据我的不足知识)。 解决方案我会进一步分析:

  • 检测网关 - 2种可能性(所有这些都与数据嗅探有关):
    • 捕获DHCP提供数据包和 检索网关
    • 查找发往外部网络的数据包(例如,在每个目标IP地址上执行arp请求 - 如果没有答案你有可能的默认网关的mac地址 - 你需要找到这个网关的IP地址(分析arp数据包,所有数据包等。)
  • 你有一个ip地址做一个arp请求并找到你免费的ip。

嗅探库我认为是libpcap或winpcap。

从来没有做过类似的事情,但如果我在谷歌上找不到任何参考资料,我会这样想的。

答案 2 :(得分:3)

在Windows网络上,您可以使用IP 0.0.0.0并打开带有端口67(或可能是68)的UDP套接字,并等待SMB广播消息学习IP地址。从那里,您可以使用ARP数据包在靠近该IP的地址上搜索设备。

如果网络使用小于255.255.255.0的网络掩码,请尝试查找与原始IP(相同的高位)相近的未使用地址。找到未使用的IP后,请为您的设备申请并发送无偿ARP。

现在继续进行ARP扫描,每当找到响应的设备时,暂时将其设置为默认网关,并尝试ping互联网上将响应的设备的已知IP地址。如果你收到回复,你就找到了你的网关。

使用DHCP时需要做很多工作才能让你在99%的时间内完成任务。