윈도우에 설치된 네트워크(이더넷 어댑터) 정보를 알아오는 방법입니다.(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 구조체를 통해 알아올 수 있습니다.
메모에 출력된 결과 화면