獲得遠(yuǎn)程或本地機(jī)器的網(wǎng)卡的MAC

字號(hào):

下面的函數(shù)以\’XX-XX-XX-XX-XX-XX\’ 的格式返回遠(yuǎn)程或本地機(jī)器的MAC地址。
    Function to return the MAC address of a remote or local machine in the format \’XX-XX-XX-XX-XX-XX\’
    返回的MAC地址是一個(gè)能用在多個(gè)方面的標(biāo)識(shí)。使用方法:
    ShowMessage(GetMacAddress(\’\\\\MHEYDON\’);
    輸出\’00-02-08-E7-99-6B\’
    // ======================================================================
    //返回值是主機(jī)AServerName的MAC地址
    //AServerName參數(shù)的格式為\’\\\\ServerName\’ 或者 \’ServerName\’
    //參數(shù)ServerName為空時(shí)返回本機(jī)的MAC地址
    //MAC地址以\’XX-XX-XX-XX-XX-XX\’的格式返回
    // ======================================================================
    function GetMacAddress(const AServerName : string) : string;
    type
    TNetTransportEnum = function(pszServer : PWideChar;
    Level : DWORD;
    var pbBuffer : pointer;
    PrefMaxLen : LongInt;
    var EntriesRead : DWORD;
    var TotalEntries : DWORD;
    var ResumeHandle : DWORD) : DWORD; stdcall;
    TNetApiBufferFree = function(Buffer : pointer) : DWORD; stdcall;
    PTransportInfo = ^TTransportInfo;
    TTransportInfo = record
    quality_of_service : DWORD;
    number_of_vcs : DWORD;
    transport_name : PWChar;
    transport_address : PWChar;
    wan_ish : boolean;
    end;
    var E,ResumeHandle,
    EntriesRead,
    TotalEntries : DWORD;
    FLibHandle : THandle;
    sMachineName,
    sMacAddr,
    Retvar : string;
    pBuffer : pointer;
    pInfo : PTransportInfo;
    FNetTransportEnum : TNetTransportEnum;
    FNetApiBufferFree : TNetApiBufferFree;
    pszServer : array[0..128] of WideChar;
    i,ii,iIdx : integer