找回密码
 加入
搜索
查看: 3648|回复: 4

AU3自动判断MAC地址来实现填写正确的编号!我头都要炸了。

[复制链接]
发表于 2009-4-20 17:52:02 | 显示全部楼层 |阅读模式
我看了很多文章。
都没有一个很好的答案。。
麻烦你了。

if not WinActivate("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码") Then WinActivate("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码")
WinActivate("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码")
ControlSetText("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码","Edit1","")
ControlSetText("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码","Edit2","00-21-85-6F-ED-09")
ControlSetText("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码","Edit3","")
ControlSend("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码","Edit1","5104020002")
ControlSend("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码","Edit2","120")
ControlSend("iKeeper网络安全管理系统 网吧版 计费客户端 安装程序","输入网吧编码","Edit3","192.168.5.199")

中间红色这段如何让AU3自动判断MAC地址来实现填写正确的编号呢?

帮帮我嘛!
发表于 2009-4-20 18:42:42 | 显示全部楼层
根据IP地址使用API得到网卡MAC地址.



_API_Get_NetworkAdapterMAC ($sIP)




参数

$sIP 您要查询网卡MAC地址的IP.

返回值

成功: 返回指定IP的网卡MAC地址
失败: 返回 00:00:00:00:00:00

注意/说明

此函数是采用发送ARP方式,如果有错误的路由绑定或交换机绑定.可能得到错误的MAC.


Func _API_Get_NetworkAdapterMAC($sIP)
        Local $MAC, $MACSize
        Local $i, $s, $r, $iIP

        $MAC = DllStructCreate("byte[6]")
        $MACSize = DllStructCreate("int")

        DllStructSetData($MACSize, 1, 6)
        $r = DllCall("Ws2_32.dll", "int", "inet_addr", "str", $sIP)
        $iIP = $r[0]
        $r = DllCall("iphlpapi.dll", "int", "SendARP", "int", $iIP, "int", 0, "ptr", DllStructGetPtr($MAC), "ptr", DllStructGetPtr($MACSize))
        $s = ""
        For $i = 0 To 5
                If $i Then $s = $s & ":"
                $s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
        Next
        Return $s
EndFunc   ;==>_API_Get_NetworkAdapterMAC

[ 本帖最后由 小包乖兔兔 于 2009-4-20 18:45 编辑 ]
发表于 2009-5-16 17:32:25 | 显示全部楼层
请问如果网络还没有连通怎样可以获取本机的MAC?
发表于 2009-5-16 17:50:39 | 显示全部楼层
请问如果网络还没有连通怎样可以获取本机的MAC?
lixiang 发表于 2009-5-16 17:32


老兄,别到处开贴,你前面那个帖子不是有人给出解决方法了嘛
http://www.autoitx.com/forum.php?mod=viewthread&tid=6554&extra=page%3D1
 
$sip=@IPAddress1;获取本机ip
If $sip="0.0.0.0" Then $sip=@IPAddress2;获取本机ip
If $sip="0.0.0.0" Then $sip=@IPAddress3
If $sip="0.0.0.0" Then $sip=@IPAddress4
If $sip="0.0.0.0" Then MsgBox(0,"IP怎么是 0.0.0.0 ?","貌似没有发现网卡,难道我脑子出问题了?")
$MAC = _GetMAC($sip);通过IP获取地址


MsgBox(0,"IP地址:"&$sip,"MAC地址:"&$MAC)

Func _GetMAC($sIP)
        Local $MAC, $MACSize
        Local $i, $s, $r, $iIP
        $MAC = DllStructCreate("byte[6]")
        $MACSize = DllStructCreate("int")
        DllStructSetData($MACSize, 1, 6)
        $r = DllCall("Ws2_32.dll", "int", "inet_addr", "str", $sIP)
        $iIP = $r[0]
        $r = DllCall("iphlpapi.dll", "int", "SendARP", "int", $iIP, "int", 0, "ptr", DllStructGetPtr($MAC), "ptr", DllStructGetPtr($MACSize))
        $s = ""
        For $i = 0 To 5
                If $i Then $s = $s & "-"
                $s = $s & Hex(DllStructGetData($MAC, 1, $i + 1), 2)
        Next
        Return $s
EndFunc   
验证过,即使无网络也可顺利获取mac地址
发表于 2009-5-29 23:30:40 | 显示全部楼层
那怎么可以自动获取IP地址呢
我意思就是说自动改IP呢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 11:04 , Processed in 0.073241 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表