阅读:2762回复:15
如何不得用NetBios而读取网卡MAC地址?
现今很多程序都是利用NETBIOS来读取网卡MAC地址,但是,经过试验发现在,读出来的地址很不可靠,例如Windows系列下就很容易修改,只要在注册表里建几个键值,然后读出来的就会相应改变。这样对了些注册机制的话很不利,所有我想问一下是否有直接从网卡的Rom中取出地址的代码?
|
|
最新喜欢:jzyhum... |
沙发#
发布于:2002-04-11 15:07
直接读硬件的方法不通用吧~! :D
|
|
板凳#
发布于:2002-04-11 15:08
我也有此想法,是否有一些常用网卡的专用读取器呢?
|
|
地板#
发布于:2002-04-11 15:14
厂家可定有上设定 mac的程序,也不通用。
|
|
地下室#
发布于:2002-04-11 15:40
是否有别的方法获得呢?
|
|
5楼#
发布于:2002-04-12 19:03
一般都是网卡的驱动提供查询、更改mac的接口,直接读写eeprom不可取,因为每个网卡、eeprom的型号都不一样,没法做到通用,
|
|
|
6楼#
发布于:2002-04-14 13:16
我是否可以通过驱动程序接口读取MAC地址呢?
|
|
7楼#
发布于:2002-04-14 13:34
in NDIS there have two mac address can be read if the NIC is ethernet:one is OID_802_3_PERMANENT_ADDRESS in NdisRequest another is OID_802_3_CURRENT_ADDRESS in NdisReques.
and the first way you can get the mac address encoded in the hardware! the mac address you got by second way is the the current using mac address that can be change in registry,but it is the really mac address your NIC used currently. |
|
8楼#
发布于:2002-04-14 13:36
应该每个厂家的读写方法都不一样
|
|
9楼#
发布于:2002-04-14 13:43
NdisRequest 就是调用 各个厂家自己nic miniport驱动中的函数啊!
这是Ndis 的标准嘛! |
|
10楼#
发布于:2002-04-14 13:55
TO anti:
该函数如何调用?是否可用C or VC or Delphi or 汇编写一段示例呢? |
|
11楼#
发布于:2002-04-14 13:59
Windows CE version ????不能Win9x?
|
|
12楼#
发布于:2002-04-14 14:30
win ce 俺没用过!
不过,都是microsoft 的东东,只要也用NDIS就可以吧! 至于NdisRequest 是在NDIS 内部调用的,如果你不在乎效率的话,做一个IMD,就可以轻松搞定(你可以查看win ce ddk,稍微该一下 passthru 的示例就可以了)。 不过我想你是要在user mode得到,好象tcpip.sys 模块有一个ioctrl的接口,如果你能知道规范,就可以从此下手,(如有高手知道,望告知)。 |
|
13楼#
发布于:2002-04-14 16:10
Does tcpip.sys live in 9x?
|
|
|
14楼#
发布于:2002-04-15 08:00
Win98,找不到tcpip.sys.
|
|
15楼#
发布于:2002-04-16 10:17
可以直接从eeprom读取或修改(如:8029AS采用的是93c46芯片)
不过网卡的芯片不同,读取得方式不同。 如读取8029AS的eeprom的MAC的OFFSET 0001h;实际ADDRESS I/O+01 MAC存入在EEPROM的ADDRESS 1h,2h,3h中;8029本站有。 如读取8139C(L)的EEPROM(93c46)里OFFSET 0050h;实际 I/O+0x50 MAC存入在EEPROM中,ADDRESS 7h,8h,9h中; 系统实际使用的MAC放在8139chin的 register中,偏移地址是 0000h,0001h,0002h,0003h,0004h,0005h中 读取8029AS的MAC程序在本站下。 如需要读取或修改8139C的eeprom的MAC的程序我正好写了一个。 请跟我联系:E-mail:yangyangde@2911.net. |
|
|