易语言取物理网卡MAC转化为特征字,采用了VB、CMD、汇编等等方法。
1、取本机网卡物理地址()
2、取本机所有网卡物理地址
3、CMD取网卡物理地址
4、VB取网卡物理地址
5、汇编取网卡物理地址
6、两种方式返回网卡特征码

511遇见易语言软件本地注册验证

通过易语言自动的数据类型:网卡信息直接获取

.版本 2
.支持库 eAPI
.支持库 spec.局部变量 网卡特征, 网卡信息, , "0"
.局部变量 n, 整数型网卡特征 = 取网卡信息列表 ()
.计次循环首 (取数组成员数 (网卡特征), n)调试输出 (网卡特征 [n].物理地址)编辑框2.加入文本 (网卡特征 [n].物理地址 + #换行符)
.计次循环尾 ()

 需要用到取DOS返回,执行CMD

ipconfig/all在返回文本中寻找物理地址

.版本 2.子程序 取DOS返回, 文本型, 公开
.参数 dos命令, 文本型
.局部变量 CreatePipe_结构体, SECURITY_ATTRIBUTES, , , CreatePipe_结构体
.局部变量 进程启动信息_CreateProcess, STARTUPINFO, , , 进程启动信息CreateProcess
.局部变量 进程标识符_CreateProcess, PROCESS_INFORMATION, , , 进程标识符_CreateProcess
.局部变量 hRead, 整数型, , , 读取管道数据的文件句柄
.局部变量 hWrite, 整数型, , , 写管道数据的文件句柄
.局部变量 len, 整数型
.局部变量 txt, 字节集
.局部变量 EXIT, 整数型
.局部变量 返回文本, 文本型' 结构体的大小初始化设置
CreatePipe_结构体.nLength = 12
' 设置安全描述
CreatePipe_结构体.lpSecurityDescriptor = 0
' 确定创建一个新进程时继承返回的句柄,如果为0,那么新进程将不会继承句柄,如果此字段设置为非0的值,那会就会继承该句柄
CreatePipe_结构体.bInheritHandle = 1
' 创建一个匿名管道
CreatePipe (hRead, hWrite, CreatePipe_结构体, 0)
' 应用程序必须初始化
进程启动信息_CreateProcess.cb = 68
' 制定wShowWindow有效
进程启动信息_CreateProcess.dwFlags = 位或 (#STARTF_USESHOWWINDOW, #STARTF_USESTDHANDLES)
' 为0不显示新建进程的主窗口,为1显示
进程启动信息_CreateProcess.wShowWindow = #SW_HIDE
进程启动信息_CreateProcess.hStdOutput = hWrite
进程启动信息_CreateProcess.hStdError = hWrite
' 判断操作系统类型,选择不同cmd
.如果 (取操作系统类别 () ≤ 2)' 创建一个进程,并且设置读写管道,创建成功后,进程会自动再创建一个写管道端口CreateProcess (0, “command.com /c ” + dos命令, 0, 0, 真, 0, 0, 0, 进程启动信息_CreateProcess, 进程标识符_CreateProcess).否则CreateProcess (0, “cmd.exe /c ” + dos命令, 0, 0, 真, 0, 0, 0, 进程启动信息_CreateProcess, 进程标识符_CreateProcess).如果结束
' 开始CreatePipe (hRead, hWrite, CreatePipe_结构体, 0)创建了一个管道了,现在CreateProcess又创建了一个管道,应当先关闭多余的管道
CloseHandle_取DOS执行结果 (hWrite)
' 设立一个无限循环
.判断循环首 (len ≠ -1)' 查看管道中的是否有数据PeekNamedPipe (hRead, 0, 0, 0, len, 0).如果 (len ≠ 0)txt = 取空白字节集 (1024)' 从管道中读取数据ReadFile (hRead, txt, 1023, len, 0)返回文本 = 返回文本 + 取字节集数据 (txt, #文本型, ).否则' 查看一下指定的进程是否已经结束GetExitCodeProcess (进程标识符_CreateProcess.进程句柄, EXIT)' 因为有的进程退出了,但管道中还有数据,所以必须在管道中没有数据的情况下判断程序是否已经结束,从而终止循环.如果真 (EXIT ≠ #STILL_ACTIVE)' 彻底关闭管道CloseHandle_取DOS执行结果 (hRead)跳出循环 ().如果真结束.如果结束' 为了减轻系统的堵塞,处理事件 ()' 输出调试文本 (到文本 (len))
.判断循环尾 ()
返回 (返回文本)
.版本 2.子程序 MAC_取特征所有_cmd, 文本型, 公开
.局部变量 a, 文本型a = 文本_取出中间文本 (取DOS返回 (“ipconfig/all”), “物理地址. . . . . . . . . . . . . : ”, #换行符, , )
返回 (a)

获取本节多网卡MAC地址

.版本 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)
.如果真 (lRet = 111)pAdapterAddresses = HeapReAlloc (取进程堆栈句柄_ (), 8, pAdapterAddresses, outBufLen)
.如果真结束
lRet = GetAdaptersAddresses (Family, Flags, 0, pAdapterAddresses, outBufLen)
.如果真 (lRet = 0)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”)加入成员 (MAC地址, tmpMAC).如果真结束处理事件 ().判断循环尾 ()
.如果真结束
释放堆栈内存_ (取进程堆栈句柄_ (), 0, pAdapterAddresses)
.如果真 (是否为空 (网卡序号))网卡序号 = 1
.如果真结束
返回 (MAC地址 [网卡序号])

所有调用命令:

.版本 2
.支持库 eAPI
.支持库 spec.程序集 窗口程序集_启动窗口.子程序 _按钮1_被单击, , , 取本机网卡物理地址编辑框1.内容 = 取本机网卡物理地址 ().子程序 _按钮2_被单击, , , 取所有网卡
.局部变量 网卡特征, 网卡信息, , "0"
.局部变量 n, 整数型网卡特征 = 取网卡信息列表 ()
.计次循环首 (取数组成员数 (网卡特征), n)调试输出 (网卡特征 [n].物理地址)编辑框2.加入文本 (网卡特征 [n].物理地址 + #换行符)
.计次循环尾 ().子程序 _按钮3_被单击, , , CMD_取所有网卡  编辑框3.内容 = MAC_取特征所有_cmd ().子程序 _按钮4_被单击, , , VB_取所有网卡编辑框4.内容 = VB_取硬件信息 (#MAC).子程序 _按钮5_被单击, , , MAC_取特征所有_多网卡编辑框5.内容 = MAC_取特征所有_多网卡 (2).子程序 _按钮6_被单击, , , MAC_取特征所有编辑框6.内容 = 到文本 (MAC_取特征所有 ())
调试输出 (取文本长度 (编辑框6.内容))

参考源码:1、511遇见易语言软件注册本地验证-3-取物理网卡MAC特征字

2、511遇见易语言软件注册教程

易语言取物理网卡MAC特征字相关推荐

  1. 易语言取linux命令返回值,易语言取程序返回值写法

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:易语言取程序返回值写法回答:在易语言中,程序包括"处理程序"都有六部分组成.一.程序名,就是程序的名称,程序名不 ...

  2. 易语言服务器取cookie,易语言取设COOKIES的代码

    易语言取设COOKIES的代码 开发WEB软件不可以缺少的源码,不管是WEB填表还是HTTP协议,都可以使用. .版本 2 .局部变量 cookie, 文本型 .局部变量 len ' 登录成功以后进行 ...

  3. 易语言json置入_易语言取置JSON文本使用方法-易语言学习-猴子技术宅

    什么是JSON? JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON到底是什么? JSON就是一串字符串 只 ...

  4. 易语言 取自定义数据类型的大小

    先说一下易语言的变量储存机制 易语言有基本数据类型和复合数据类型两种 基本数据类型包括:1. 各种整数 2.各种浮点 3. 逻辑值 他们都是储存在栈上的 大小都是固定的 用不着取 复合类型一般储存在堆 ...

  5. 易语言程序c盘路径,易语言取文件路径的操作教程

    易语言开发环境的"横空出世",给沉寂已久的"编程江湖"带来了巨大反响.越来越多的编程爱好者加入了易语言编程的大潮中.在易语言编程中,我们可能会遇到很多问题.比如 ...

  6. 易语言取MySQL错误代码_易语言mysql错误排查

    因为最近我也收到很多新手经常问的问题:怎么我的语句老是出错,问题都出在哪里呢?我怎么找了一天都找不到问题所在呢?等等的一些新手经常犯的错误!这次我给大家分享一个怎么样来排查问题的! 这个是一张表添加的 ...

  7. 易语言取计算机的ip,易语言怎样取IP物理地址

    QQwry.dat 实际是dbf文件数据库 , 将QQwry.dat 改为QQwry.dbf 就可以看到里面的数据 易语言读取 dbf数据库源码很多 百度一下就可以 附源码 如下 ---------- ...

  8. 易语言取php网页数据,易语言爬取网页内容方法

    写个辅助工具的时候需要提取网页里面的某些内容,我这里便把方法告诉大家,希望对大家有所帮助,记得投票给我哦! 1.在新建的windos窗口程序中画: 两个编辑框.一个按钮. 再添加模块如图中三步! 我们 ...

  9. 易语言取文件名和文件扩展名

    取文件扩展名,返回一个文件的扩展名称,如.txt,如果没有后缀,返回空,文件_取文件名,比如:F:\123.txt,成功返回123,失败返回空,这个命令的第二个参数可以控制是否返回扩展名称.用到的ap ...

最新文章

  1. Shell 下记录程序运行时间
  2. php socket 效率,php socket 模型及效率问题
  3. intent隐式和显式_Neo4j:使隐式关系成为显式和双向关系
  4. docker 查询或获取私有仓库(registry)中的镜像
  5. 最全的Pycharm debug技巧
  6. 下载丨云和恩墨技术通讯:OCR无法正常读取导致节点宕机
  7. 电脑怎么改网络ip地址_电脑的桌面路径怎么改?
  8. chapter8.1、面向对象
  9. c语言 同时显示正切和余切函数,正切余切函数曲线辅助作图器及其使用方法
  10. Hook技术第二讲,之虚表HOOK
  11. win7搜索网络计算机文件,Win7查找局域网共享文件的方法
  12. 一文学会回溯算法解题技巧
  13. xp如何开启系统打印服务器配置,XP系统设置打印机共享的方法有哪些
  14. 玩彩票赢钱概率有多少?用Python来告诉你
  15. java双人俄罗斯方块_双人版俄罗斯方块
  16. windows10映射网络驱动器教程、步骤(出现网络错误、浏览不能选择的解决办法)
  17. layui自定义模块、日志打印使用、layui文件上传云服务器
  18. python解码IP地址
  19. 2021泰晤士计算机排名,2021泰晤士世界大学学科排名发布!
  20. 目标检测——图像金字塔

热门文章

  1. Linux常用必备命令
  2. python3 爬取电影天堂最新电影
  3. shell_day1
  4. 常见复杂网络分析方法
  5. a人工智能b大数据c云计算_ABC时代生产工具的是()。A、人工智能B、大数据C、云计算D、物联网...
  6. cfdpost教程_CFD-Post知识论坛_CFD-Post安装视频_CFD-Post实例教程-仿真秀
  7. 如何修改论文降低重复率
  8. MySQL如何安装到电脑上
  9. three.js学习笔记(四)——Lights灯光
  10. 年会公众号签到,签到墙,抽奖归纳