function TActiveFormX.GetMACAdress: string; //uses NB30;
var
NCB: PNCB;
Adapter: PAdapterStatus;
URetCode: PChar;
RetCode: char;
I: integer;
Lenum: PlanaEnum;
_SystemID: string;
TMPSTR: string;
begin
Result := '';
_SystemID := '';
Getmem(NCB, SizeOf(TNCB));
Fillchar(NCB^, SizeOf(TNCB), 0);
Getmem(Lenum, SizeOf(TLanaEnum));
Fillchar(Lenum^, SizeOf(TLanaEnum), 0);
Getmem(Adapter, SizeOf(TAdapterStatus));
Fillchar(Adapter^, SizeOf(TAdapterStatus), 0);
Lenum.Length := chr(0);
NCB.ncb_command := chr(NCBENUM);
NCB.ncb_buffer := Pointer(Lenum);
NCB.ncb_length := SizeOf(Lenum);
RetCode := Netbios(NCB);
i := 0;
repeat
Fillchar(NCB^, SizeOf(TNCB), 0);
Ncb.ncb_command := chr(NCBRESET);
Ncb.ncb_lana_num := lenum.lana[I];
RetCode := Netbios(Ncb);
Fillchar(NCB^, SizeOf(TNCB), 0);
Ncb.ncb_command := chr(NCBASTAT);
Ncb.ncb_lana_num := lenum.lana[I];
// Must be 16
Ncb.ncb_callname := ('*');
Ncb.ncb_buffer := Pointer(Adapter);
Ncb.ncb_length := SizeOf(TAdapterStatus);
RetCode := Netbios(Ncb);
//---- calc _systemId from mac-address[2-5] XOR mac-address[1]...
if (RetCode = chr(0)) or (RetCode = chr(6)) then
begin
_SystemId := IntToHex(Ord(Adapter.adapter_address[0]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[1]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[2]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[3]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[4]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[5]), 2);
end;
Inc(i);
until (I >= Ord(Lenum.Length)) or (_SystemID <> '00-00-00-00-00-00');
FreeMem(NCB);
FreeMem(Adapter);
FreeMem(Lenum);
GetMacAdress := _SystemID;
end;
分享到:
相关推荐
该函数的参数ipaddr是要获取MAC地址的IP地址,temp是一个临时变量,ulmacaddr是MAC地址的指针,ulmacaddrleng是MAC地址的长度。 使用SendARP函数可以获取网卡的MAC地址,下面是一个示例代码: ```delphi procedure ...
在Delphi中获取MAC地址涉及到对操作系统底层网络接口的访问。以下是一个关键的知识点概述: 1. **WinAPI调用**: Delphi可以通过Windows API函数来获取MAC地址,这些函数通常在`winpcap`库或者`iphlpapi.dll`等...
本资源“Delphi获取MAC地址.rar”是针对使用Delphi编程时如何获取计算机物理(MAC)地址的一个解决方案。MAC地址是网络设备如网卡的唯一标识,通常用在局域网中识别设备。在某些情况下,比如软件注册或设备授权,...
在Delphi 2010中实现获取MAC地址的功能,可以让我们更好地管理和控制网络连接。 首先,我们需要了解MAC地址的结构。MAC地址是一个48位的二进制数,通常分为6个字节,每字节用两个十六进制数字表示,并用冒号或破折...
在Delphi编程环境中,开发一个能够获取本机IP地址和MAC地址,并将结果显示在文本框的应用程序是一项常见的任务。这个程序的关键在于使用Indy控件库,特别是其中的IdIPWatch组件。首先,我们需要了解一些关于Delphi、...
在Delphi中获取MAC地址通常通过Windows API函数实现,如`GetAdaptersInfo`或`GetAdaptersAddresses`,解析返回的网络适配器信息来获取。MAC地址通常是一个6字节的十六进制数,格式为AA:BB:CC:DD:EE:FF。 2. **CPU ...
总的来说,通过DELPHI获取MAC地址是一个涉及系统API调用、内存管理和网络编程的过程。理解这些步骤和相关概念,可以帮助你编写出高效且稳定的代码,实现所需的功能。在实际应用中,可能还需要考虑多线程、并发访问...
Delphi获取网卡mac地址的pas文件,关键部分函数全在里面,方便使用和调试,xp系统下有点bug,可能获取不到mac地址,原因我没细研究
delphi7获取MAC地址
请注意,这里只是一个基础示例,实际的`GetMACAddress`函数需要正确处理错误,并解析`Buffer`来获取MAC地址。 在压缩包中的`Unit1.pas`和`Unit1.dfm`文件很可能是实现这些功能的源代码和界面设计文件。`Project1....
在Delphi编程环境中,获取本机的IP地址、计算机名称以及网络适配器的MAC(物理)地址是常见的系统信息获取需求。这些信息对于网络通信、设备定位和系统管理至关重要。下面将详细介绍如何使用Delphi来实现这些功能。 ...
本项目"Delphi获取本机所有网卡MAC和IP(支持多网卡).rar"就是一个实例,展示了如何在Delphi中获取本机所有网卡的MAC和IP信息。 首先,我们需要了解基础概念。MAC地址是每个网络设备(如网卡)的唯一标识,它由6组...
Delphi获取当前计算机内所有网卡的物理地址。 设计思路: 1 从注册表内获取计算机内所有网卡列表 2 根据网卡ID来获取各网卡的mac地址 此获取规范比之网络上流传的大部分delphi获取网卡的源码都实用。 PS:当...
Delphi 获取本机网卡列表及网卡配置信息如:Mac地址、网络接口编号、IP地址、DHCPServer地址、网关等信息
以下是一些关于如何使用DELPHI获取电脑硬件信息的知识点: 1. **硬件信息接口**: DELPHI可以通过Windows API调用来获取硬件信息。这些API函数包括`GetSystemInfo`, `EnumDiskDrives`, `EnumProcessors`等,它们提供...
本文将详细讲解如何使用Delphi编程语言来修改MAC地址,并围绕提供的文件资源进行解析。 首先,让我们了解MAC地址。MAC地址是网络接口控制器(NIC)的物理地址,用于在局域网(LAN)中唯一标识每个设备。它由6个16...
下面将详细解释如何使用Delphi进行NetBIOS调用来获取MAC地址。 首先,NetBIOS是一种基于局域网(LAN)的通信协议,它允许网络上的应用程序通过网络接口卡(NIC)进行通信。在Windows系统中,NetBIOS API提供了一...
这个名为"DELPHI获取网卡属性和IP地址.rar"的压缩包内容显然提供了这样的功能,特别是针对IPv4和IPv6协议。 首先,让我们深入理解如何在Delphi中获取这些网络信息。在Windows操作系统中,可以使用Windows API函数,...
网卡信息可通过查询`Win32_NetworkAdapterConfiguration`类获取,包括MAC地址和IP信息。 ```delphi function GetNICInfo: string; var WbemLocator, WbemServices: Variant; WMISet: Variant; WMIObj: ...
对于使用Delphi编程语言的开发者来说,"Delphi 获取真实物理网卡地址"这个主题涉及到的是如何通过编程来获取计算机网络适配器(即网卡)的物理地址,也称为MAC地址。MAC地址是一个全球唯一的48位标识符,用于在网络...