윈도우에 설치된 네트워크(이더넷 어댑터) 정보를 알아오는 방법입니다.(10.3 리오에서 구현했습니다.)
uses 절에 Winapi.IPTypes, Winapi.IPHlpAPi 추가해야 합니다.
var
I: integer;
NumInterfaces: DWORD;
AdapterInfo: array of TIpAdapterInfo; // uses Winapi.IpTypes
OutBufLen: ULONG;
begin
GetNumberOfInterfaces(NumInterfaces); // uses Winapi.IpHlpApi
SetLength(AdapterInfo, NumInterfaces);
OutBufLen := NumInterfaces * SizeOf(TIpAdapterInfo);
GetAdaptersInfo(@AdapterInfo[0], OutBufLen);
Memo1.Lines.Clear;
for I := 0 to NumInterfaces - 1 do begin
if AdapterInfo[I].Description = '' then
Continue;
Memo1.Lines.Add(AdapterInfo[I].Description);
Memo1.Lines.Add(AdapterInfo[I].IpAddressList.IpAddress.S);
Memo1.Lines.Add(Format('%.2x:%.2x:%.2x:%.2x:%.2x:%.2x',
[AdapterInfo[I].Address[0], AdapterInfo[I].Address[1],
AdapterInfo[I].Address[2], AdapterInfo[I].Address[3],
AdapterInfo[I].Address[4], AdapterInfo[I].Address[5]]));
end;기타 정보도 TIpAdapterInfo 구조체를 통해 알아올 수 있습니다.
메모에 출력된 결과 화면