- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
直接读取PCI网卡的MAC地址的原理与方法
第3l卷 第l8期 计 算 机 工 程 2005年9月
VoL31 № l8 ComputerEngineering September 2005
·开发研究与设计技术 · 文章编号:10oo-3428(2Il05)1&一I21,一J3 文献标识码:A 中圈分类号:TP393
直接读取PCI网卡的MAC地址的原理与方法
李全虑,王希超
(山东农业大学信息学院,泰安 27t018)
摘 要 :以RTL8139网卡为例,分析r从串行存储芯片AT93C46中直接 读取MAC地址的原理与方法,给出了相应的Delphi语言实现程
序,从而较好地解决了在应用程序中直接读取可靠的MAC地址的技术问题。
关键词:PCI总线;RTL8139网卡;AT93C46芯片;MAC
PrincipleandM ethodt0ReadMACAddress
0fPCINetworkCardDirectly
LIQuanzhong,WANGXichao
(CollegeofInformation,ShandongAgriculturalUniversity,Taian271018)
[Abstract]TheprincipleandmethodtoreadMACaddressdirectlyfiomserialmemo~chipAT93C46areanalyzedandtherelativeexecutable
program isgiveninDelphi.ThisprovidesthetechniqueofreadingM AC addressdirectlyrfom appliedprograms.
IKeywords]PCIBus;RTL8139networkcard;AT93C46chip;MAC
每块网卡都有一个全球唯一的48位 (6B)的MAC地址, 信号和数据信号的传输与响应是通过它 的命令寄存器
在网络通信中起到区分每个节点的作用,有时也称 MAC地 93C46CR 实现的,显然,对 AT93C46编程其实就是对
址为节点地址。正是由于 MAC地址数据的这个性质特点 , 93C46CR编程。93C46CR是一个8位的寄存器,其 口地址为
使它成了不少应用软件实施保护的 “指纹”,或用作安全方面 RTL8l39的10空间基址偏移 50H,RTL8l39的 10空间基址
的身份标志。然而,对于这类应用程序笔者实验发现 ,只要 由其配置空间的偏移 10—13H处的双字寄存器给出。
对 Win9X注册表中的MAC数据进行相应变更,或对其 PCI 至此,可归结出读取 MAC地址的主要步骤:(1)检测
网卡 10空间的IDR0一IDR5寄存器进行相应改写,这些应用 RTL8l39网卡是否存在。若存在,则进行下一步,否则退出;
程序便能在这样的机器上正常运行。显见,这类程序在获取 (2)获得RTL8l39网卡的10空间基址 ,从而得到AT93C46的
MAC地址的途径上考虑不周,换言之,它们为了省事便简单 命令寄存器 口地址 ;(3)对AT93C46编程,读取其存储器芯片
地从存放MAC拷贝的存储单元中读取 MAC地址。经进一步 中的MAC地址 。
分析发现,即使在应用程序中通过NetBIOS提供的API接 口 3读取MAC地址的实现过程
函数获取 MAC地址,同样也是不可靠的,因为事实上利用 3.1获得RTL8139网卡的IO空间基址
上述API函数获得MAC地址的实质仍是从 IDR0~IDR5寄存 RTL8l39网卡同其它PCI总线设备一样,都有一个配置
器中
原创力文档


文档评论(0)