how to get a list of all active IP adresses of a computer?
And is there any possibility to distinc between LAN and WAN adresses?
(maybe between Dialup and non-Dialup ones?)
Greetings
Markus
Grab the IP Helper API from http://www.delphi-jedi.org/APILIBRARY:655568
I also use
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/i
phlp/getadaptersinfo.asp for reference.
a simple example is:
var
pAdapterInfo: PIP_ADAPTER_INFO;
AdapterInfo: IP_ADAPTER_INFO;
Status: DWORD;
BufLen: DWORD;
begin
BufLen := sizeof(AdapterInfo);
pAdapterInfo := @AdapterInfo;
Status := GetAdaptersInfo(nil, BufLen);
Status := GetAdaptersInfo(pAdapterInfo, BufLen);
while (pAdapterInfo <> nil) do
begin
Memo1.Lines.Add('Description: ' + pAdapterInfo^.Description);
Memo1.Lines.Add('Name: ' + pAdapterInfo^.AdapterName);
Buf := '';
for I := 0 to pAdapterInfo^.AddressLength - 1 do
Buf := Buf + '-' + IntToHex(pAdapterInfo^.Address[I], 2);
Delete(Buf, 1, 1);
Memo1.Lines.Add('MAC address: ' + Buf);
Memo1.Lines.Add('IP address: ' +
pAdapterInfo^.IpAddressList.IpAddress.S);
Memo1.Lines.Add('Gateway: ' +
pAdapterInfo^.GatewayList.IpAddress.S);
Memo1.Lines.Add('DHCP enabled: ' +
IntTOStr(pAdapterInfo^.DhcpEnabled));
Memo1.Lines.Add('DHCP: ' +
pAdapterInfo^.DhcpServer.IpAddress.S);
Memo1.Lines.Add('Have WINS: ' +
BoolToStr(pAdapterInfo^.HaveWins));
Memo1.Lines.Add('Primary WINS: ' +
pAdapterInfo^.PrimaryWinsServer.IpAddress.S);
Memo1.Lines.Add('Secondary WINS: ' +
pAdapterInfo^.SecondaryWinsServer.IpAddress.S);
pAdapterInfo := pAdapterInfo^.Next;
end;
end;
--
Brad Prendergast http://www.bpsoftware.com
"The only difference between me and a madman is that I'm not mad." --
Salvador Dali (1904 - 1989)
Left out a line, you need to get size first...
>Status := GetAdaptersInfo(nil, BufLen);
pAdapterInfo := AllocMem(BufLen);
>Status := GetAdaptersInfo(pAdapterInfo, BufLen);
I ended up blogging this too.
--
Brad Prendergast