能力值:
( LV2,RANK:10 )
|
-
-
2 楼
同求,求科普
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
在设备管理器-网络适配器-查看本机所有网卡名称
运行regedit打开注册表
定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\,并查看此下所有主键,一般都有十个左右的主键,由于我个人笔记本用的外接网卡比较多,所以多点主键。
从0000起,鼠标选中,查看右侧,查看名称为DriverDesc的项目数据,看看是不是刚刚在设备管理器中看到的网卡名称。看我的,我在0007中找到了自己的网卡broadcom,0007主键中还有一项networkaddress,其值是我的mac,这是我的固定网卡,此处可以修改固定网卡mac。
对比下0007/Ndi/params/主键下的内容,发现了吧,嘿嘿,完全对应windows的高级选项卡中的所有选项,这样相信大家已经有了大概想法了。
再按刚才的方法找无线网卡的主键,这是一块没处理过的网卡RTL8187,发现Ndi/params/下没有networkaddress主键,0009主键下也没有名称为networkaddress的项目名称,于是,我们想到了手动添加这些信息。
拿我的主无线网卡为例(因为已经改过了)4954AGN,在0011主键右侧添加名称为NetworkAddress的字符串,值设定为目标值。
左侧的0011/Ndi/params下新建主键名称为NetworkAddress。
选中左侧的0011/Ndi/params/NetworkAddress,右侧设置完全复制那个固定网卡的内容,注意一点是,Default的数据要为刚才设定的NetworkAddress所设定的MAC
解决问题,值得一提的是,这个需要重启机器。运行CMD,输入ipconfig/all看看修改成功没有~~这种方法一劳永逸,以后直接就能在属性中修改mac了。
再次强调,请先阅读全文,保证每步都看懂了,备份注册表后,再进行尝试,注册表修改要慎重,尤其是本次涉及windows的网络模块,很可能做错了导致启动异常,所以保证看懂了,会用了,再去尝试。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
#Include <File.au3>
#RequireAdmin
$PC = @ComputerName & ".tmp"
if fileexists($pc) then
filedelete($pc)
EndIf
Run(@ComSpec & " /c " & 'getmac >> ' & $PC, "", @SW_HIDE)
$i = _FileCountLines($PC)
$line = 0
Do
$info = filereadline($PC, $line)
if $info = "" or StringInStr($info, "物理地址", 0) or StringInStr($info, "===================", 0) or StringInStr($info, "传输名称", 0) then
sleep(1000)
$line = $line +1
else
$mac = stringleft(FileReadLine($pc, $line), 17)
$line = $i
filedelete($pc)
EndIf
until $line = $i
msgbox(64, "MAC Address", "your mac address is: " & $mac)
PS: 利用 ‘getmac’命令获取 本机MAC地址 (AU3)
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
谢谢你的关注。
不过你完全没有看懂我的问题,你说的这个根本无法实现随意修改现在的无线网卡mac。原因是无线网卡驱动端已经限制了mac的修改。我想知道的是如何解除这个驱动端的限制,或者说无线网卡驱动是如何进行这个限制的
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
pLopp
i
l
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
都没人回答,我自己回答吧。
网卡是通过ndis.sys中的NdisReadNetworkAddress获取mac地址的,然后通过检查参数,若mac地址合法即将其作为网卡地址,否则读取自身地址。。而现在网卡驱动判断 mac合法化时要确认第二位为2,6,a,e才行
|
|
|