⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netcardaddr.pas

📁 使用IPHlp函数库取得所有网卡的地址
💻 PAS
字号:
uses IPHlpAPI,IPTypes,IPIfConst;

function GetDiskSerialNo(Disk: Char): string;
var
  dwTemp1,dwTemp2,I: DWord;
begin
  GetVolumeInformation(PChar(Disk + ':\'), nil, 0,
    @I, dwTemp2,dwTemp2,nil,0);
  Result := IntToHex(I,4);
end;

function GetNetCardMac: string;
var
  Info: PIP_ADAPTER_INFO;
  Len: DWOrd;
  P: Pointer;
  E: Integer;
begin
  Result := '';
  Len := 0;
  if GetAdaptersInfo(nil, Len) <> ERROR_BUFFER_OVERFLOW then Exit;
  GetMem(Info,Len);
  try
    E := GetAdaptersInfo(Info,Len);
    if E <> NO_ERROR then
      raise Exception.Create(SysErrorMessage(E));
    //Info.Index
    P := Info;
    if P <> nil then
      Result := MacAddr2Str(IP_ADAPTER_INFO(P^).Address,IP_ADAPTER_INFO(P^).AddressLength);
  finally
    FreeMem(Info);
  end;
end;

function GetAllNetCardMac: string;
var
  Info: PIP_ADAPTER_INFO;
  Len: DWOrd;
  P: Pointer;
  E: Integer;
  Macs: TStrings;
begin
  Result := '';
  Len := 0;
  if GetAdaptersInfo(nil, Len) <> ERROR_BUFFER_OVERFLOW then Exit;
  GetMem(Info,Len);
  Macs := TStringList.Create;
  try
    E := GetAdaptersInfo(Info,Len);
    if E <> NO_ERROR then
      raise Exception.Create(SysErrorMessage(E));
    P := Info;
    while P <> nil do
    begin
      Macs.Add(MacAddr2Str(IP_ADAPTER_INFO(P^).Address,IP_ADAPTER_INFO(P^).AddressLength));
      P := IP_ADAPTER_INFO(P^).Next;
    end;
    TStringList(Macs).Sort;
    Result := Macs.CommaText;
  finally
    FreeMem(Info);
    Macs.Free;
  end;
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -