关于网友提出的“ 在本机没有获得IP的时候如何探测IP冲突”问题疑问,本网通过在网上对“ 在本机没有获得IP的时候如何探测IP冲突”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 在本机没有获得IP的时候如何探测IP冲突描述:
机器在启动的时候IP冲突,IP地址为0.0.0.0。
如何从10.210.0.2-10.210.0.254中查找一个空闲IP啊?
我现在能做到的是在自己机器有IP的情况下进行查找,但是有了IP我就不需要查找了啊,由于人多,DHCP服务都不忙不过来,自己一个一个的试验IP太慢啦。
我过去的同学写了一个,但是现在联系不到了5555。
在这种情况下,好象不能发送ARP包了。windows在设置的时候是如何判断的呢?
谢谢
解决方案1:
手工不行就用程序实现吧,即自己实现DHCP客户的相关功能(很简单,就是完成一次DHCP通话,你可以循环将你们的网段的IP从1到254发过去,问可不可以给我用,如果DHCP服务回答不可用,说明已经补占用了,如果可以,则可用。(用WINCAP应该可以构造DHCP协议的包吧,ARP包要IP,所以不行)DHCP协议的具体内容自己查吧,呵呵,给你一个大致的原理:
工作流程
DHCP服务的工作过程是这样的:
1.发现阶段,即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCP discover发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应(如图1)。
2.提供阶段,即DHCP服务器提供IP地址的阶段。在网络中接收到DHCP discover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCP offer提供信息(如图2)。
3.选择阶段,即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCP offer提供信息,则DHCP客户机只接受第一个收到的DHCP offer提供信息,然后它就以广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址(如图3)。
4.确认阶段,即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址(如图4)。