Delphi自定义获取网卡MAC地址过程
//获取网卡MAC地址===============================================================
procedure CvtInt;
asm
OR CL,CL
JNZ @CvtLoop
@C1: OR EAX,EAX
JNS @C2
NEG EAX
CALL @C2
MOV AL,'-'
INC ECX
DEC ESI
MOV [ESI],AL
RET
@C2: MOV ECX,10
@CvtLoop:
PUSH EDX
PUSH ESI
@D1: XOR EDX,EDX
DIV ECX
DEC ESI
ADD DL,'0'
CMP DL,'0'+10
JB @D2
ADD DL,('A'-'0')-10
@D2: MOV [ESI],DL
OR EAX,EAX
JNE @D1
POP ECX
POP EDX
SUB ECX,ESI
SUB EDX,ECX
JBE @D5
ADD ECX,EDX
MOV AL,'0'
SUB ESI,EDX
JMP @z
@zloop: MOV [ESI+EDX],AL
@z: DEC EDX
JNZ @zloop
MOV [ESI],AL
@D5:
end;
function IntToHex(Value: Integer; Digits: Integer): string;
asm
CMP EDX, 32 // Digits < buffer length?
JBE @A1
XOR EDX, EDX
@A1: PUSH ESI
MOV ESI, ESP
SUB ESP, 32
PUSH ECX // result ptr
MOV ECX, 16 // base 16 EDX = Digits = field width
CALL CvtInt
MOV EDX, ESI
POP EAX // result ptr
CALL System.@LStrFromPCharLen
ADD ESP, 32
POP ESI
end;
function MacAddress: string; //获取MAC信息
var
Lib: Cardinal;
Func: function(GUID: PGUID): Longint; stdcall;
GUID1, GUID2: TGUID;
begin
Result :='';
Lib := LoadLibrary('rpcrt4.dll');
if Lib <> 0 then
begin
@Func := GetProcAddress(Lib, 'UuidCreateSequential');
if Assigned(Func) then
begin
if (Func(@GUID1) = 0) and
(Func(@GUID2) = 0) and
(GUID1.D4[2] = GUID2.D4[2]) and
(GUID1.D4[3] = GUID2.D4[3]) and
(GUID1.D4[4] = GUID2.D4[4]) and
(GUID1.D4[5] = GUID2.D4[5]) and
(GUID1.D4[6] = GUID2.D4[6]) and
(GUID1.D4[7] = GUID2.D4[7]) then
begin
Result :=
IntToHex(GUID1.D4[2], 2) + '-' +
IntToHex(GUID1.D4[3], 2) + '-' +
IntToHex(GUID1.D4[4], 2) + '-' +
IntToHex(GUID1.D4[5], 2) + '-' +
IntToHex(GUID1.D4[6], 2) + '-' +
IntToHex(GUID1.D4[7], 2);
end;
end;
FreeLibrary(Lib);
end;
end;
Delphi自定义获取网卡MAC地址过程相关推荐
- Python 获取 网卡 MAC 地址
/************************************************************************ Python 获取 网卡 MAC 地址* 说明:* ...
- php获取网卡mac地址吗,php获取网卡MAC地址步骤详解
这次给大家带来php获取网卡MAC地址步骤详解,php获取网卡MAC地址的注意事项有哪些,下面就是实战案例,一起来看一下. php获取网卡的物理地址,即mac地址.<?php /** 获取网卡的 ...
- 通过WMI获取网卡MAC地址、硬盘序列号、主板序列号、CPU ID、BIOS序列号
开发语言:C/C++ 支持平台:Windows 实现功能: 通过WMI获取网卡MAC地址.硬盘序列号.主板序列号.CPU ID.BIOS序列号 下载地址: WMI_DeviceQuery.zip 版本 ...
- ioctl(sock, SIOCGIFHWADDR, ifr)获取网卡mac地址
ioctl(sock, SIOCGIFHWADDR, &ifr) 获取网卡mac地址 ioctl(sock, SIOCGIFINDEX, &ifr)获取网卡接口地址 为什么我bind时 ...
- android 获取网卡mac_android获取网卡mac地址信息
由于android版本不一样获取网卡mac地址的方式也不一样,比较麻烦,但是java sdk里面的函数是可以获取里面的网卡内容. 代码如下: /** * 获取网络的mac地址 * * @return ...
- java通过ip获取网卡MAC地址
参考:http://www.jb51.net/article/73882.htm /** * 获取MAC地址 * @author * 2011-12 */ public static class Ge ...
- DELPHI获取网卡MAC地址 转
1.通过IP取MAC地址 uses WinSock; Function sendarp(ipaddr:ulong; temp:dword; ulmacaddr:pointer; ulmacaddrle ...
- DELPHI获取网卡MAC地址
1.通过IP取MAC地址 uses WinSock; Function sendarp(ipaddr:ulong; temp:dword; ulmacaddr:pointer; ulmacaddrle ...
- 关于wmi获取网卡mac地址重复的分析
现象:如图在部分电脑上获取ip和MAC地址对应关系时,界面显示部分电脑发现重复ip和mac 分析:用WMI Explorer查看时,有一个设备Microsoft TV/video connection ...
最新文章
- Angular 4+ HttpClient
- java钢琴键_javapiano Java Piano模拟钢琴效果的完整源码 联合开发网 - pudn.com
- 100本名著浓缩成了100句话
- html网页自动铺满屏幕,如何使HTML元素的区域铺满全屏
- LinkedHashMap 的理解以及借助其实现LRU
- 计算机数媒专业优势,27所院校新开设数字媒体艺术专业,“数媒”专业为什么这么火?...
- react jest测试_如何使用React测试库和Jest开始测试React应用
- cmd oracle 连接实例_C#连接Oracle数据库的实例方法
- 动态路由选择协议(二)距离矢量路由选择协议
- 资源放送丨《OGG日常运维及故障处理》PPT视频
- 关于SQL Server将一列的多行内容拼接成一行的问题讨论
- 京东程序员回应“被猝死”;淘宝特价版已提交微信小程序;苹果 M1 单核性能勇超 Intel 11 代 i7...
- Java设计模式超详细
- 自我检讨书(我与电脑)
- LeetCode.714.买卖股票的最佳时机含手续费
- amcharts的使用介绍
- html5 jq点赞功能,jQuery实现简单的点赞效果
- 强化学习经典model-free方法总结
- ModelSim 实用知识:优化,SDF,覆盖率
- 64位 regsrv win10_win10 专业版 64位 系统 频繁蓝屏,MEMORY_MANAGEMENT - Microsoft Community...