易语言取物理网卡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. U盘中毒了?教你如何删除System Volume Information这个顽固文件夹
  2. python中变量的作用域有几种_Python中变量的作用域(variable scope)
  3. 10年卖下28家AI公司 苹果的AI吸星大法!
  4. windows server r2 之如何设置共享文件夹访问不需要输入用户名和密码
  5. vue中引入jquery
  6. 【实验】小型网络WLAN架构实战案例
  7. [置顶] ProDinner体验
  8. Windows Phone 7 LongListSelector控件实现分类列表和字母索引
  9. 搭建Tomcat云服务器
  10. 上项线体表位置_体表定位
  11. rtsp 报文转发_rtsp_proxy_server
  12. 游戏编程精粹学习 - 使用定点颜色插值模拟实时光照
  13. 历史上那些差点被扼杀的数学天才,考试、偏见都是凶手
  14. html绘制小球并跟随鼠标移动,利用JS如何实现小球跟随鼠标移动
  15. 世界人工智能大会开幕,云计算概念股大涨
  16. 大型网站技术架构+核心原理与案例分析+李智慧
  17. css翻转箭头,巧用css3轻松实现箭头上下旋转
  18. 禁止复制服务器文件夹,远程桌面服务器 禁止复制文件夹
  19. 跟着团子学SAP PS:利用项目统计指标(SKF)提升项目成本核算的精准性
  20. 信息收集之基础端口扫描《诸神之眼——Nmap网络安全审计技术揭秘》总结一

热门文章

  1. 批量将swa文件转成MP3文件
  2. 02、【solidworks】solidworks下载重装可能遇到的问题尤其是注册表访问问题
  3. 数仓工具—Hive实战之UDF汉字首字母(22)
  4. 抖音表情制作方法 动态GIF怎么玩
  5. 2021-Java后端工程师面试指南-(SpringBoot+SpringCloud)
  6. kafka之Consumer消费者基本概念
  7. 逸佳君:虚拟化云桌面之虚拟机克隆与配置脚本
  8. 抓取MBIM PCAP LOG的方法
  9. Android活动–从一个屏幕切换到另一个屏幕
  10. 使用机器学习预测股票市场(机器学习案列)