`
longo1202
  • 浏览: 10582 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

delphi 获取mac地址

阅读更多
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;

 

分享到:
评论

相关推荐

    DELPHI获取网卡MAC地址.pdf

    该函数的参数ipaddr是要获取MAC地址的IP地址,temp是一个临时变量,ulmacaddr是MAC地址的指针,ulmacaddrleng是MAC地址的长度。 使用SendARP函数可以获取网卡的MAC地址,下面是一个示例代码: ```delphi procedure ...

    Delphi获取MAC地址

    在Delphi中获取MAC地址涉及到对操作系统底层网络接口的访问。以下是一个关键的知识点概述: 1. **WinAPI调用**: Delphi可以通过Windows API函数来获取MAC地址,这些函数通常在`winpcap`库或者`iphlpapi.dll`等...

    Delphi获取MAC地址.rar

    本资源“Delphi获取MAC地址.rar”是针对使用Delphi编程时如何获取计算机物理(MAC)地址的一个解决方案。MAC地址是网络设备如网卡的唯一标识,通常用在局域网中识别设备。在某些情况下,比如软件注册或设备授权,...

    DELPHI 2010 获取MAC地址

    在Delphi 2010中实现获取MAC地址的功能,可以让我们更好地管理和控制网络连接。 首先,我们需要了解MAC地址的结构。MAC地址是一个48位的二进制数,通常分为6个字节,每字节用两个十六进制数字表示,并用冒号或破折...

    Delphi—获取本机“IP地址”和“MAC地址”,并显示在“文本框”里

    在Delphi编程环境中,开发一个能够获取本机IP地址和MAC地址,并将结果显示在文本框的应用程序是一项常见的任务。这个程序的关键在于使用Indy控件库,特别是其中的IdIPWatch组件。首先,我们需要了解一些关于Delphi、...

    delphi获取Mac物理地址以及计算机名用户名IP地址CPUID等源代码分享

    在Delphi中获取MAC地址通常通过Windows API函数实现,如`GetAdaptersInfo`或`GetAdaptersAddresses`,解析返回的网络适配器信息来获取。MAC地址通常是一个6字节的十六进制数,格式为AA:BB:CC:DD:EE:FF。 2. **CPU ...

    DELPHI轻松获取电脑MAC地址

    总的来说,通过DELPHI获取MAC地址是一个涉及系统API调用、内存管理和网络编程的过程。理解这些步骤和相关概念,可以帮助你编写出高效且稳定的代码,实现所需的功能。在实际应用中,可能还需要考虑多线程、并发访问...

    Delphi获取网卡Mac地址源码

    Delphi获取网卡mac地址的pas文件,关键部分函数全在里面,方便使用和调试,xp系统下有点bug,可能获取不到mac地址,原因我没细研究

    delphi获取MAC_IP地址.pas

    delphi7获取MAC地址

    delphi 整合获取IP和MAC.zip

    请注意,这里只是一个基础示例,实际的`GetMACAddress`函数需要正确处理错误,并解析`Buffer`来获取MAC地址。 在压缩包中的`Unit1.pas`和`Unit1.dfm`文件很可能是实现这些功能的源代码和界面设计文件。`Project1....

    Delphi获取本机IP、名称、网卡MAC等信息..rar

    在Delphi编程环境中,获取本机的IP地址、计算机名称以及网络适配器的MAC(物理)地址是常见的系统信息获取需求。这些信息对于网络通信、设备定位和系统管理至关重要。下面将详细介绍如何使用Delphi来实现这些功能。 ...

    Delphi获取本机所有网卡MAC和IP(支持多网卡).rar

    本项目"Delphi获取本机所有网卡MAC和IP(支持多网卡).rar"就是一个实例,展示了如何在Delphi中获取本机所有网卡的MAC和IP信息。 首先,我们需要了解基础概念。MAC地址是每个网络设备(如网卡)的唯一标识,它由6组...

    delphi获取网卡物理地址

    Delphi获取当前计算机内所有网卡的物理地址。 设计思路: 1 从注册表内获取计算机内所有网卡列表 2 根据网卡ID来获取各网卡的mac地址 此获取规范比之网络上流传的大部分delphi获取网卡的源码都实用。 PS:当...

    Delphi 获取本机网卡列表及网卡配置信息

    Delphi 获取本机网卡列表及网卡配置信息如:Mac地址、网络接口编号、IP地址、DHCPServer地址、网关等信息

    DELPHI获取电脑硬件信息

    以下是一些关于如何使用DELPHI获取电脑硬件信息的知识点: 1. **硬件信息接口**: DELPHI可以通过Windows API调用来获取硬件信息。这些API函数包括`GetSystemInfo`, `EnumDiskDrives`, `EnumProcessors`等,它们提供...

    delphi 修改MAC地址

    本文将详细讲解如何使用Delphi编程语言来修改MAC地址,并围绕提供的文件资源进行解析。 首先,让我们了解MAC地址。MAC地址是网络接口控制器(NIC)的物理地址,用于在局域网(LAN)中唯一标识每个设备。它由6个16...

    Delphi调用NetBios获取MAC 网卡地址..rar

    下面将详细解释如何使用Delphi进行NetBIOS调用来获取MAC地址。 首先,NetBIOS是一种基于局域网(LAN)的通信协议,它允许网络上的应用程序通过网络接口卡(NIC)进行通信。在Windows系统中,NetBIOS API提供了一...

    DELPHI获取网卡属性和IP地址.rar

    这个名为"DELPHI获取网卡属性和IP地址.rar"的压缩包内容显然提供了这样的功能,特别是针对IPv4和IPv6协议。 首先,让我们深入理解如何在Delphi中获取这些网络信息。在Windows操作系统中,可以使用Windows API函数,...

    Delphi获取电脑硬件信息(DLL方式),BIOS、CPU、网卡、硬盘序列号

    网卡信息可通过查询`Win32_NetworkAdapterConfiguration`类获取,包括MAC地址和IP信息。 ```delphi function GetNICInfo: string; var WbemLocator, WbemServices: Variant; WMISet: Variant; WMIObj: ...

    Delphi 获取真实物理网卡地址

    对于使用Delphi编程语言的开发者来说,"Delphi 获取真实物理网卡地址"这个主题涉及到的是如何通过编程来获取计算机网络适配器(即网卡)的物理地址,也称为MAC地址。MAC地址是一个全球唯一的48位标识符,用于在网络...

Global site tag (gtag.js) - Google Analytics