阅读:1990回复:12
网卡地址获取
我想自己从DHCP服务器上取分配给本机的网卡地址,
怎样写一个简单的DHCP客户端来获取呢?或者那位高人有这样的源代码共享呢? |
|
|
沙发#
发布于:2004-03-10 17:15
高人怎么不进来
|
|
|
板凳#
发布于:2004-03-12 10:37
实现一个dhcp客户端不就能达到你的目的吗?
|
|
地板#
发布于:2004-03-12 13:05
是啊,但是我不知道怎么实现windows下的DHCP客户端
|
|
|
地下室#
发布于:2004-03-14 23:09
改passthru,
自己构DHCP客户端的数据包发出去, 就可以了 但。。。。。。说起来容易,做起来难 |
|
5楼#
发布于:2004-03-15 09:04
我初略看了一下dhcp的Linux源代码,发现Linux通过socket发送dhcp广播包,在windows下有这样的方式发送吗?还是windows下只能通过修改passthru发送dhcp广播包
|
|
|
6楼#
发布于:2004-03-15 09:35
用arp包判断,如果你的机器发出的arp包的源IP地址==目的IP地址,这个包就是你的本机IP地址了;)
|
|
|
7楼#
发布于:2004-03-15 11:15
广播ARP包不就可以了吗?
|
|
8楼#
发布于:2004-03-15 14:54
楼上两位,我想从dhcp服务器获取给本机分配的IP地址,还没有涉及到arp发送问题,对我的问题有什么建议?
|
|
|
9楼#
发布于:2004-03-15 15:27
没办法还得给你讲第2遍;0
如果你本机发送的ARP广播包的源IP==目的IP,那这个包的IP地址就是你的本机IP地址了,WAN就是可以这样判断的 所以你需要截获一下本机下发的ARP包,判断一下就行了。 说了半天好累!!! |
|
|
10楼#
发布于:2004-03-15 17:25
yongliliu,
麻烦你给我在讲一次. 我的问题是我的机器通过dhcp服务器获取IP地址, 动态获取, 具体是我的虚拟网卡要获得IP地址.IP地址的获取通过dhcp服务器, 你能给我建议码? |
|
|
11楼#
发布于:2004-03-16 09:21
就拿局域网来说,本地IP地址可能是对方DHCP服务器分配的吧,那么想获取本机被分配的IP地址的话,有两个办法:
1、读取注册表,你自己研究吧;) 2、在驱动层下发的arp包,比方说:可以在passthru――>MPSend的例程中截获下发数据包,看看是不是arp数据包,如果不是就放过了吧,如果是的话就分析一下,看看这个arp包的源IP地址是否等于目的IP地址,如果等于的话,这个IP就是你的本机被分配的IP地址了,分析完了再把该数据包放过去,注意要和媒体类型一起分析,因为某台机器可能同时存在网卡和modem;还有一种情况就是一块网卡上绑定了两个以上的IP地址,只能有一个主IP地址,你自己分析吧;) |
|
|
12楼#
发布于:2004-03-20 14:48
dhcp是ip层功能,基于C/S模式的。有专门的帧,用于交换。交换的顺序可以用抓包软件看,顺序非常清楚。一般的网卡驱动---miniport driver中好像不需要。具体顺序可以看一些参考书,或IEEE档案。网上资料也很多。
|
|
|