Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ricardo II

Recuperar IP da Internet e local

Recommended Posts

Iae pessoal, como faço para pegar o ip da intenet em minha aplicação, tipo 200.132.14.12, e também preciso pegar o ip local tipo 192.168.1.2, to pesquisando pela função GetAdaptersInfo da api do windows mas sem sucesso até o momento.

 

Grato a todos

 

At+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez tenha um jeito mais fácil. Um Application.<alguma função>

Mas eu achei isto:

uses Winsock; 

function GetIPFromHost
(var HostName, IPaddr, WSAErr: string): Boolean; 
type 
  Name = array[0..100] of Char; 
  PName = ^Name; 
var 
  HEnt: pHostEnt; 
  HName: PName; 
  WSAData: TWSAData; 
  i: Integer; 
begin 
  Result := False;	 
  if WSAStartup($0101, WSAData) <> 0 then begin 
	WSAErr := 'Winsock is not responding."'; 
	Exit; 
  end; 
  IPaddr := ''; 
  New(HName); 
  if GetHostName(HName^, SizeOf(Name)) = 0 then
  begin 
	HostName := StrPas(HName^); 
	HEnt := GetHostByName(HName^); 
	for i := 0 to HEnt^.h_length - 1 do 
	 IPaddr :=
	  Concat(IPaddr,
	  IntToStr(Ord(HEnt^.h_addr_list^[i])) + '.'); 
	SetLength(IPaddr, Length(IPaddr) - 1); 
	Result := True; 
  end
  else begin 
   case WSAGetLastError of
	WSANOTINITIALISED:WSAErr:='WSANotInitialised'; 
	WSAENETDOWN	  :WSAErr:='WSAENetDown'; 
	WSAEINPROGRESS   :WSAErr:='WSAEInProgress'; 
   end; 
  end; 
  Dispose(HName); 
  WSACleanup; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
var 
  Host, IP, Err: string; 
begin 
  if GetIPFromHost(Host, IP, Err) then begin 
	Edit1.Text := Host; 
	Edit2.Text := IP; 
  end 
  else 
	MessageDlg(Err, mtError, [mbOk], 0); 
end;

Explicando:

O código acima está usando Winsocks. Foi criada uma função chamada GetIPFromHost que passa parâmetros por referência. A função irá retornar o nome do Host e o IP dele. Em caso de erro, a variável Err será preenchida com algum conteúdo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.