直接读取PCI网卡的MAC地址的原理与方法
李全忠
山东农业大学信息学院
摘
要
给出了相应的
Delphi 语言实现程
序
关键词
RTL8139网卡
College of Information, Shandong Agricultural University,Taian 271018
The principle and method to read MAC address directly from serial memory chip AT93C46 are analyzed and the relative executable
program is given in Delphi.This provides the technique of reading MAC address directly from applied programs.
RTL8139 network card
18
2005
年9月
September 2005
1000
0213
A
中图分类号
6B
?yê?óéóúMAC 地址数据的这个性质特点
对于这类应用程序笔者实验发现
或对其
PCI
网卡IO
空间的IDR0-IDR5寄存器进行相应改写
这类程序在获取
MAC 地址的途径上考虑不周
经进一步
分析发现
同样也是不可靠的那么
下面以
RTL8139
型网卡为例进行分析与探讨
网卡自身就要做一些初始化
工作RTL8139网卡的主控芯片8139就会从AT93C46è?oó′?·?μ??÷??D???IO 空间的偏移地址为0000-0005H 的6个8位可读写寄存器IDR0-IDR5中
网卡工作时使用的MAC 就是从寄存器IDR0-IDR5中读
取的只有网卡重启时
显然
2 读取MAC 地址的基本原理
AT93C46
是一个串行EEPROM 存储器
要想从AT93C46
中直接读取MAC 地址
而程序中的各种控制
信号
和数据信
号的传输与响应是通过它的命令寄存器93C46CR
实现
的
93C46CR
是一个8位的寄存器
RTL8139的IO
空间基址
由其配置空间的偏移10-13H 处的双字寄存器给出
可归结出读取
MAC
地址的主要步骤
则进行下一步
(2)获得
RTL8139网卡的IO 空间基址
(3)对
AT93C46编程
3 读取MAC 地址的实现过程
3.1 获得RTL8139网卡的IO 空间基址
RTL8139网卡同其它PCI 总线设备一样
当电脑启动时
包括对一些寄存器设置和存储器映射等
表 1 列出了
RTL8139网卡配置空间中的关键字段
DID字段是用来识别特定PCI 设备的标志
作者简介
男
王希超
2004-06-11 E-mail
只读只读可读写
万方数据