【已解决】没有IP地址,如何获取mac地址?
本帖最后由 dearmb 于 2011-1-1 21:39 编辑搜索了一些帖子,发现基本上都是通过本机IP来获取mac地址的
但是我的要求是,本机当前还没有配置IP地址,通过获取到的mac地址修改IP地址
怎么做呢? 建议MAC地址保存到INI文件… 回复 2# 83265358
他是问如何获取, 呃。。晕死。我等回答 。 好好找找啊,不插网线都可以找到MAC的,我发过帖子 看这个帖子,不知道你是不是找这样的 好好找找啊,不插网线都可以找到MAC的,我发过帖子
fhp2009 发表于 2010-12-23 18:53 http://autoitx.com/images/common/back.gif
我晕啦,你发过帖子告诉我不就完了……
只要以你为线索找了 …… 看这个帖子,不知道你是不是找这样的
fhp2009 发表于 2010-12-23 18:56 http://autoitx.com/images/common/back.gif
纯AU3获得本地MAC地址
是这个吗?本人初学者,将你的代码复制进去运行,提示错误,将rundos修改成_rundos,运行,还是出错,不知道怎么改了,指教~~ http://www.autoitx.com/forum.php?mod=viewthread&tid=20122&highlight=
他这个帖子里有提到, 不过他是把回显弄过来, 找文字的,匹配了就有了。
你可以先 在CMD 里输入Ipconfig /all看能不能找到MAC地址, 如果没有, 那这个方法就不适合你。 自己在用的一段代码,单网卡环境测试通过,多网卡不知道效果如何...
#include <ACN_NET.au3>
msgbox(0,"本机的MAC地址是:",Getmac())
Func getmac()
Select
Case Not (@IPAddress1 = "0.0.0.0" Or @IPAddress1 = "127.0.0.1")
$sip = @IPAddress1
Case Not (@IPAddress2 = "0.0.0.0" Or @IPAddress2 = "127.0.0.1")
$sip = @IPAddress2
Case Not (@IPAddress3 = "0.0.0.0" Or @IPAddress3 = "127.0.0.1")
$sip = @IPAddress3
Case Not (@IPAddress4 = "0.0.0.0" Or @IPAddress4 = "127.0.0.1")
$sip = @IPAddress4
EndSelect
$mymac = _API_Get_NetworkAdapterMAC($sip)
return $mymac
EndFunc ;==>getmac
自己在用的一段代码,单网卡环境测试通过,多网卡不知道效果如何...
kingfirekkk 发表于 2010-12-23 19:32 http://autoitx.com/images/common/back.gif
???
“没有”ip地址获取mac地址? 回复 10# dearmb
没有IP地址也有几种类型:
一种就是没有插网线,没有从DHCP上获取IP地址,此时实际上还是有IP地址的,但是IP地址的类型为:169.254.x.x
另外一种就是网卡禁用了,那就是真的没有IP地址了(连网卡功能都了,肯定IP地址也没有了)
还有另外一种就是网卡工作正常,此时可以用127.0.0.1来代替本地本机网当前活动网卡的IP地址; 回复 9# kingfirekkk
顶............... 回复dearmb
没有IP地址也有几种类型:
一种就是没有插网线,没有从DHCP上获取IP地址,此时实际上还是 ...
kingfirekkk 发表于 2010-12-23 20:05 http://autoitx.com/images/common/back.gif
保靠吗?什么情况下会失败啊?
如果失败……上千台电脑需要自己手动搞的…… http://www.autoitx.com/forum.php?mod=viewthread&tid=5651&highlight=\_net
#Include <Array.au3>
$NetworkAdapterInfo=_NetworkAdapterInfo()
_ArrayDisplay($NetworkAdapterInfo, "NetworkAdapterInfo")
Func _NetworkAdapterInfo()
;======================================================
;
; 函数名称: _NetworkAdapterInfo()
; 详细信息: 获取系统所有网卡信息
; 返回值说明:
; 以二维数组方式返回.例如 $info=_NetworkAdapterInfo()
; $info 网卡数量
; $info 第一块网卡的标志1
; $info 第一块网卡的状态
; 状态说明:7为网卡未插网线,2为网卡连接正常
; $info 第一块网卡的网卡名称
; $info 第一块网卡的连接名称
; $info 第一块网卡的MAC地址
; $info 第一块网卡的IP地址
; $info 第一块网卡的默认网关
; $info 第一块网卡的子网掩码
; $info 第一块网卡的主DNS
; $info 第一块网卡的次DNS
; 第二块网卡:
; $info 第二块网卡的标志1
; $info 第二块网卡的次DNS
; 其他网卡信息依次类推。。。
; 注意,此UDF不会获取已经禁用的网卡。
; 作者: Sanhen (gxbeiliu@163.com)
; 网站: www.lunhui.net.cnwww.autoitx.com
;======================================================
Local $colItem
Local $objItem
Local $colItems
Local $objItems
Local $objWMIService
Local $Adapters
$Adapters = 0
$objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
$colItem= $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionStatus >0", "WQL", 0x30)
If IsObj($colItem) Then
For $objItem In $colItem
If $objItem.MACAddress = "00:00:00:00:00:00" Then ContinueLoop
$Adapters += 1
ReDim $Adapters
$Adapters[$Adapters] += $Adapters
$Adapters[$Adapters] = $objItem.NetConnectionStatus
$Adapters[$Adapters] = $objItem.Description
$Adapters[$Adapters] = $objItem.NetConnectionID
$Adapters[$Adapters] = $objItem.MACAddress
$colItems= $objWMIService.ExecQuery('SELECT * FROM Win32_NetworkAdapterConfiguration WHERE MACAddress = "'&$Adapters[$Adapters]&'" And IPEnabled = True ' , "WQL", 0x30)
If IsObj($colItems) Then
For $objItems In $colItems
;if $objItem1.IPAddress(0) = "0.0.0.0" Then ContinueLoop
$Adapters[$Adapters] = $objItems.IPAddress(0)
$Adapters[$Adapters] = $objItems.DefaultIPGateway(0)
$Adapters[$Adapters] = $objItems.IPSubnet(0)
$Adapters[$Adapters] = $objItems.DNSServerSearchOrder(0)
$Adapters[$Adapters] = $objItems.DNSServerSearchOrder(1)
Next
EndIf
Next
EndIf
Return $Adapters
EndFunc
页:
[1]