Как получить IP-адрес?
На компьютере может быть установлено несколько сетевых плат, тогда у этого компьютера будет несколько IP-адресов. Эта процедура найдет все IP-адреса.
uses
..., WinSock;
procedure TForm1.Button1Click(Sender: TObject);
type
InAddr = Array[0..10] of PInAddr;
TInAddr = ^InAddr;
var
Host: PHostEnt;
pPtr: TInAddr;
Buffer: Array[0..63] of char;
i: Integer;
Socket: TWSAData;
begin
ListBox1.Clear;
WSAStartup( $101, Socket );
GetHostName( Buffer, SizeOf( Buffer ) );
Host := GetHostByName( buffer );
if Host = nil then Exit;
pPtr := TInAddr( Host^.h_addr_list );
i := 0;
while pPtr^[i] <> nil do
begin
ListBox1.Items.Add( inet_ntoa( pPtr^[i]^ ) );
Inc( i );
end;
WSACleanup;
end;
|