|
本帖最后由 萧阳天 于 2016-4-26 23:48 编辑
从源码中可以看出只能取【宽带连接】拨号方式的电脑,但是路由器方式的和无线方式的就无法正常取了,查了下论坛有人反映和提出解决方法,是脚本处理,不知道使用对象脚本方式能否分别成功取出ADSL、无线、本地的的MAC,目前来看本地是肯定可以的,无线和ADSL哪位易友测试下!
但是少了一个参数【目标IP】功能,有的时候我还需要取局域网其他设备的MAC,所以附上解决方案,实测完美!
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_缓冲 | 字节型 | | 6 | 局_地址 | 字节集 | | | 局_当前IP | 整数型 | | | 局_计次 | 整数型 | | | 集_IP段 | 字节集 | | | 集_IP | 文本型 | | 0 | 集_MAC | 文本型 | | 0 | ADSL | ADSL拨号类 | | | 如果真 (是否为空 (目标IP )) ADSL. _取本机IP (集_IP )如果 (取数组成员数 (集_IP ) ≥ 1 )目标IP = 集_IP [1 ]返回 (“”)集_IP段 = 到字节集 (inet_addr (目标IP))重定义数组 (集_IP, 假, 255 )重定义数组 (集_MAC, 假, 255 )局_当前IP = 取字节集数据 (集_IP段, #整数型, )如果真 (SendARP (局_当前IP, 0, 局_缓冲, 6 ) = 0 )局_地址 = 到字节集 (局_当前IP )计次循环首 (6, 局_计次 )如果真 (局_缓冲 [局_计次 ] < 16 )集_MAC [局_地址 [4 ]] = 集_MAC [局_地址 [4 ]] + “0”集_MAC [局_地址 [4]] = 集_MAC [局_地址 [4]] + 取十六进制文本 (局_缓冲 [局_计次]) + “-”计次循环尾 ()返回 (取文本左边 (集_MAC [局_地址 [4 ]], 17 )) 返回 (“”)
修改后的源码
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_缓冲 | 字节型 | | 6 | 局_地址 | 字节集 | | | 局_当前IP | 整数型 | | | 局_计次 | 整数型 | | | 集_IP段 | 字节集 | | | 集_IP | 文本型 | | 0 | 集_MAC | 文本型 | | 0 | ADSL | ADSL拨号类 | | | 如果真 (是否为空 (目标IP )) ADSL. _取本机IP (集_IP )如果 (取数组成员数 (集_IP ) ≥ 1 )目标IP = 集_IP [1 ]返回 (“”)如果真 (目标IP = “0.0.0.0”)系统_取本机IP (集_IP )目标IP = 集_IP [1 ]集_IP段 = 到字节集 (inet_addr (目标IP))重定义数组 (集_IP, 假, 255 )重定义数组 (集_MAC, 假, 255 )局_当前IP = 取字节集数据 (集_IP段, #整数型, )如果真 (SendARP (局_当前IP, 0, 局_缓冲, 6 ) = 0 )局_地址 = 到字节集 (局_当前IP )计次循环首 (6, 局_计次 )如果真 (局_缓冲 [局_计次 ] < 16 )集_MAC [局_地址 [4 ]] = 集_MAC [局_地址 [4 ]] + “0”集_MAC [局_地址 [4]] = 集_MAC [局_地址 [4]] + 取十六进制文本 (局_缓冲 [局_计次]) + “-”计次循环尾 ()返回 (取文本左边 (集_MAC [局_地址 [4 ]], 17 )) 返回 (“”)
|
|