dearmb 发表于 2010-12-23 17:31:55

【已解决】没有IP地址,如何获取mac地址?

本帖最后由 dearmb 于 2011-1-1 21:39 编辑

搜索了一些帖子,发现基本上都是通过本机IP来获取mac地址的
但是我的要求是,本机当前还没有配置IP地址,通过获取到的mac地址修改IP地址
怎么做呢?

83265358 发表于 2010-12-23 18:45:52

建议MAC地址保存到INI文件…

chenronting 发表于 2010-12-23 18:48:13

回复 2# 83265358


    他是问如何获取, 呃。。晕死。我等回答 。

fhp2009 发表于 2010-12-23 18:53:45

好好找找啊,不插网线都可以找到MAC的,我发过帖子

fhp2009 发表于 2010-12-23 18:56:30

看这个帖子,不知道你是不是找这样的

dearmb 发表于 2010-12-23 19:04:28

好好找找啊,不插网线都可以找到MAC的,我发过帖子
fhp2009 发表于 2010-12-23 18:53 http://autoitx.com/images/common/back.gif

我晕啦,你发过帖子告诉我不就完了……
只要以你为线索找了 ……

dearmb 发表于 2010-12-23 19:07:28

看这个帖子,不知道你是不是找这样的
fhp2009 发表于 2010-12-23 18:56 http://autoitx.com/images/common/back.gif

纯AU3获得本地MAC地址
是这个吗?本人初学者,将你的代码复制进去运行,提示错误,将rundos修改成_rundos,运行,还是出错,不知道怎么改了,指教~~

chenronting 发表于 2010-12-23 19:11:30

http://www.autoitx.com/forum.php?mod=viewthread&tid=20122&highlight=

他这个帖子里有提到, 不过他是把回显弄过来, 找文字的,匹配了就有了。
你可以先 在CMD 里输入Ipconfig /all看能不能找到MAC地址, 如果没有, 那这个方法就不适合你。

kingfirekkk 发表于 2010-12-23 19:32:02

自己在用的一段代码,单网卡环境测试通过,多网卡不知道效果如何...
#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

dearmb 发表于 2010-12-23 19:47:16

自己在用的一段代码,单网卡环境测试通过,多网卡不知道效果如何...
kingfirekkk 发表于 2010-12-23 19:32 http://autoitx.com/images/common/back.gif

???
“没有”ip地址获取mac地址?

kingfirekkk 发表于 2010-12-23 20:05:06

回复 10# dearmb

没有IP地址也有几种类型:
一种就是没有插网线,没有从DHCP上获取IP地址,此时实际上还是有IP地址的,但是IP地址的类型为:169.254.x.x
另外一种就是网卡禁用了,那就是真的没有IP地址了(连网卡功能都了,肯定IP地址也没有了)
还有另外一种就是网卡工作正常,此时可以用127.0.0.1来代替本地本机网当前活动网卡的IP地址;

83265358 发表于 2010-12-23 20:46:29

回复 9# kingfirekkk
顶...............

dearmb 发表于 2010-12-23 20:59:38

回复dearmb

没有IP地址也有几种类型:
一种就是没有插网线,没有从DHCP上获取IP地址,此时实际上还是 ...
kingfirekkk 发表于 2010-12-23 20:05 http://autoitx.com/images/common/back.gif

保靠吗?什么情况下会失败啊?
如果失败……上千台电脑需要自己手动搞的……

yhxhappy 发表于 2010-12-23 21:04:13

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]
查看完整版本: 【已解决】没有IP地址,如何获取mac地址?