start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:1909回复:12

网卡地址获取

楼主#
更多 发布于:2004-03-10 15:33
我想自己从DHCP服务器上取分配给本机的网卡地址,
怎样写一个简单的DHCP客户端来获取呢?或者那位高人有这样的源代码共享呢?
second
start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-10 17:15
高人怎么不进来
second
shiliu
驱动牛犊
驱动牛犊
  • 注册日期2003-12-18
  • 最后登录2004-05-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-12 10:37
实现一个dhcp客户端不就能达到你的目的吗?
start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-03-12 13:05
是啊,但是我不知道怎么实现windows下的DHCP客户端
second
wengyu100
驱动牛犊
驱动牛犊
  • 注册日期2003-10-10
  • 最后登录2006-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-03-14 23:09
改passthru,
自己构DHCP客户端的数据包发出去,
就可以了
但。。。。。。说起来容易,做起来难
start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-03-15 09:04
我初略看了一下dhcp的Linux源代码,发现Linux通过socket发送dhcp广播包,在windows下有这样的方式发送吗?还是windows下只能通过修改passthru发送dhcp广播包
second
yongliliu
驱动小牛
驱动小牛
  • 注册日期2003-10-20
  • 最后登录2007-09-28
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-03-15 09:35
用arp包判断,如果你的机器发出的arp包的源IP地址==目的IP地址,这个包就是你的本机IP地址了;)
成功不是天上掉下来的免费的丰盛的晚餐!
huaifenzi256
驱动牛犊
驱动牛犊
  • 注册日期2003-03-12
  • 最后登录2007-06-06
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-03-15 11:15
广播ARP包不就可以了吗?

start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-03-15 14:54
楼上两位,我想从dhcp服务器获取给本机分配的IP地址,还没有涉及到arp发送问题,对我的问题有什么建议?
second
yongliliu
驱动小牛
驱动小牛
  • 注册日期2003-10-20
  • 最后登录2007-09-28
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-03-15 15:27
没办法还得给你讲第2遍;0

如果你本机发送的ARP广播包的源IP==目的IP,那这个包的IP地址就是你的本机IP地址了,WAN就是可以这样判断的

所以你需要截获一下本机下发的ARP包,判断一下就行了。

说了半天好累!!!
成功不是天上掉下来的免费的丰盛的晚餐!
start
驱动小牛
驱动小牛
  • 注册日期2001-11-05
  • 最后登录2010-09-03
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望27点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-03-15 17:25
yongliliu,

麻烦你给我在讲一次.

我的问题是我的机器通过dhcp服务器获取IP地址, 动态获取,
具体是我的虚拟网卡要获得IP地址.IP地址的获取通过dhcp服务器,
你能给我建议码?




  
second
yongliliu
驱动小牛
驱动小牛
  • 注册日期2003-10-20
  • 最后登录2007-09-28
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-03-16 09:21
就拿局域网来说,本地IP地址可能是对方DHCP服务器分配的吧,那么想获取本机被分配的IP地址的话,有两个办法:

1、读取注册表,你自己研究吧;)
2、在驱动层下发的arp包,比方说:可以在passthru――>MPSend的例程中截获下发数据包,看看是不是arp数据包,如果不是就放过了吧,如果是的话就分析一下,看看这个arp包的源IP地址是否等于目的IP地址,如果等于的话,这个IP就是你的本机被分配的IP地址了,分析完了再把该数据包放过去,注意要和媒体类型一起分析,因为某台机器可能同时存在网卡和modem;还有一种情况就是一块网卡上绑定了两个以上的IP地址,只能有一个主IP地址,你自己分析吧;)
成功不是天上掉下来的免费的丰盛的晚餐!
iwub
驱动牛犊
驱动牛犊
  • 注册日期2002-10-09
  • 最后登录2009-06-22
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望60点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-03-20 14:48
dhcp是ip层功能,基于C/S模式的。有专门的帧,用于交换。交换的顺序可以用抓包软件看,顺序非常清楚。一般的网卡驱动---miniport driver中好像不需要。具体顺序可以看一些参考书,或IEEE档案。网上资料也很多。
iwub
游客

返回顶部