看看下面的几个函数是否合适:
  //取网卡地址(MAC)列表
  procedure NBGetMac(Strings: TStrings);
  //取第一个非零的网卡地址
  function NBGetFirstMac: String;
  //判断指定网卡地址是否存在
  function NBIsMacInList(Mac: String): Boolean;procedure NBGetMac(Strings: TStrings);
  function HexBL(by: Byte): String;
  begin
    Result := Format('%x', [by]);
    if Length(Result) < 2 then
      Result := '0' + Result;
  end;
var
  NCB: TNCB;
  Adapter: TAdapterStatus;
  LanaEnum: TLanaEnum;
  I, J: Integer;
  Str: String;
begin
  Strings.Clear;
  ZeroMemory(@NCB,SizeOf(NCB));  NCB.ncb_command := Chr(NCBENUM);
  NetBios(@NCB);  NCB.ncb_buffer := @LanaEnum;
  NCB.ncb_length := SizeOf(LanaEnum);
  NCB.ncb_command := Chr(NCBENUM);
  NetBios(@NCB);  for I := 0 to Ord(LanaEnum.length) - 1 do
  begin
    ZeroMemory(@NCB,SizeOf(NCB));
    NCB.ncb_command := Chr(NCBRESET);
    NCB.ncb_lana_num := LanaEnum.lana[I];
    NetBios(@NCB);    ZeroMemory(@NCB,SizeOf(NCB));
    NCB.ncb_command := Chr(NCBASTAT);
    NCB.ncb_lana_num := LanaEnum.lana[I];
    StrPCopy(NCB.ncb_callname,'*');
    NCB.ncb_buffer := @Adapter;
    NCB.ncb_length := SizeOf(Adapter);
    NetBios(@NCB);    Str := '';
    for J := 0 to 5 do
    begin
      if J > 0 then Str := Str + '-';
      Str := Str + HexBL(Byte(Adapter.adapter_address[J]));
    end;
    Strings.Add(Str);
  end;
end;function NBGetFirstMac: String;
var
  Strings: TStringList;
  I, J: Integer;
begin
  Result := '';
  Strings := TStringList.Create;
  try
    NBGetMac(Strings);
    for I := 0 to Strings.Count - 1 do
    begin
      for J := 1 to Length(Strings.Strings[I]) do
        if (Strings.Strings[I][J] <> '0') and
          (Strings.Strings[I][J] <> '-') then
        begin
          Result := Strings.Strings[I];
          Break;
        end;
      if Result <> '' then Break;
    end;
  finally
    Strings.Free;
  end;
end;function NBIsMacInList(Mac: String): Boolean;
var
  Strings: TStringList;
  I: Integer;
begin
  Result := False;
  Strings := TStringList.Create;
  try
    NBGetMac(Strings);
    for I := 0 to Strings.Count - 1 do
    begin
      if Strings.Strings[I] = Mac then
      begin
        Result := True;
        Break;
      end;
    end;
  finally
    Strings.Free;
  end;
end;