为编程爱好者分享易语言教程源码的资源网
广告位招租 程序员交流社区 挂机,挂机器人服务器95一年 易语言培训课大全 三叶资源网交流群④ 【采购季】上云仅¥223/3年
广告位招租 每日疯抢商品 建站服务器 便宜好看的文具盒 三叶资源网交流群④ 【采购季】上云仅¥223/3年
程序员交流社区 每日疯抢商品 建站服务器 便宜好看的文具盒 三叶资源网交流群④ 【采购季】上云仅¥223/3年

网站首页 易语言相关 网络相关源码 正文

易语言取多网卡MAC地址源码

三叶资源网 2013-03-02 网络相关源码 743 ℃ 2 评论

源码通过API函数取多网卡MAC地址。源码是WINDOWS API学习例程。

@黑客源码

.版本 2

.子程序 网络_取本机MAC, 文本型, 公开, 获取本机MAC地址,可以获取多网卡MAC,失败返回空。
.参数 网卡序号, , 可空, 可以被省略。当本机有多块网卡时,指定要对其操作的网卡序号(从1开始)。
.局部变量 IPAA, IP_ADAPTER_ADDRESSES
.局部变量 pAdapterAddresses
.局部变量 outBufLen
.局部变量 Flags
.局部变量 Family
.局部变量 lRet
.局部变量 dwIndex
.局部变量 i
.局部变量 outBuff, 文本型, , "0"
.局部变量 MAC地址, 文本型, , "0"
.局部变量 tmpMAC, 文本型

Flags = 16
Family = 0
outBufLen = 0
pAdapterAddresses = 从堆栈分配内存_ (取进程堆栈句柄_ (), 8, 32)
lRet = GetAdaptersAddresses (Family, Flags, 0, pAdapterAddresses, outBufLen)  ' 第一次调用,如果缓冲区不够,会在outBufLen里返回所需要的缓冲区大小
.如果真 (lRet = 111)  ' 如果返回溢出,则重分配足够的内存
    pAdapterAddresses = HeapReAlloc (取进程堆栈句柄_ (), 8, pAdapterAddresses, outBufLen)
.如果真结束
lRet = GetAdaptersAddresses (Family, Flags, 0, pAdapterAddresses, outBufLen)  ' 这次是正式取了
.如果真 (lRet = 0)
    ' 三叶资源网(www.sanye.cx)
    i = 0
    重定义数组 (outBuff, 假, 1)
    拷贝内存_IP_ADAPTER (IPAA, pAdapterAddresses, Len_IP_ADAPTER (IPAA))
    tmpMAC = 取十六进制文本 (IPAA.PhysicalAddress [1]) + “-” + 取十六进制文本 (IPAA.PhysicalAddress [2]) + “-” + 取十六进制文本 (IPAA.PhysicalAddress [3]) + “-” + 取十六进制文本 (IPAA.PhysicalAddress [4]) + “-” + 取十六进制文本 (IPAA.PhysicalAddress [5]) + “-” + 取十六进制文本 (IPAA.PhysicalAddress [6])
    加入成员 (MAC地址, tmpMAC)
    .判断循环首 (IPAA.pNext ≠ 0)
        i = i + 1
        重定义数组 (outBuff, 真, i)
        拷贝内存_IP_ADAPTER (IPAA, IPAA.pNext, Len_IP_ADAPTER (IPAA))
        tmpMAC = 取十六进制文本 (IPAA.PhysicalAddress [1]) + “-” + 取十六进制文本 (IPAA.PhysicalAddress [2]) + “-” + 取十六进制文本 (IPAA.PhysicalAddress [3]) + “-” + 取十六进制文本 (IPAA.PhysicalAddress [4]) + “-” + 取十六进制文本 (IPAA.PhysicalAddress [5]) + “-” + 取十六进制文本 (IPAA.PhysicalAddress [6])
        .如果真 (tmpMAC ≠ “0-0-0-0-0-0”)
            ' 三叶资源网(www.sanye.cx)
            加入成员 (MAC地址, tmpMAC)
        .如果真结束
        处理事件 ()
    .判断循环尾 ()
.如果真结束
释放堆栈内存_ (取进程堆栈句柄_ (), 0, pAdapterAddresses)
.如果真 (是否为空 (网卡序号))
    网卡序号 = 1
.如果真结束
返回 (MAC地址 [网卡序号])
文件下载


来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网④群:72857039

已有2位网友发表了看法:

  • 易语言

    易语言  评论于 [2020-06-08 16:11:03]  回复

    有多个网卡,易语言如何获取本机想要的P地址

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网④群:三叶资源网③群

网站分类
随机tag
代理采集小号桃源挖矿简单多线程UDP乐玩模拟器滑动验证码十进制一键备份聚享游post图片比例缩放字符串加密Access链接表文本朗读异或校验微信HOOK取文件列表EXUI仿迅雷登陆界面QQ注册QQ资料照片墙上传自动回复
最新评论
友情链接