Fórum Qual é comando, ou melhor, como faço para adquirir o IP..... #156833
30/04/2003
0
Qual é comando, ou melhor, como faço para adquirir o IP da máquina que está executando aquele programa????
Obrigado
Gonçalves.
Obrigado
Gonçalves.
Goncalves
Curtir tópico
+ 0
Responder
Posts
30/04/2003
Marcelo.c
Talvez este código possa te ajudar:
Obter o endereço IP do Dial-Up
Inclua na seção uses: WinSock
{ Esta função retorna o endereço IP do Dial-Up. }
function GetLocalIP : string;
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char;
I : Integer;
GInitData : TWSADATA;
begin
WSAStartup($101, GInitData);
Result := ´´;
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[I] <> nil do begin
result:=StrPas(inet_ntoa(pptr^[I]^));
result := StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
Observações
Se o endereço IP for designado pelo servidor, a cada conecção teremos um endereço IP diferente e, obviamente, se não estivermos conectados, não conseguiremos obtê-lo.
Obter o endereço IP do Dial-Up
Inclua na seção uses: WinSock
{ Esta função retorna o endereço IP do Dial-Up. }
function GetLocalIP : string;
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char;
I : Integer;
GInitData : TWSADATA;
begin
WSAStartup($101, GInitData);
Result := ´´;
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[I] <> nil do begin
result:=StrPas(inet_ntoa(pptr^[I]^));
result := StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
Observações
Se o endereço IP for designado pelo servidor, a cada conecção teremos um endereço IP diferente e, obviamente, se não estivermos conectados, não conseguiremos obtê-lo.
Responder
Gostei + 0
01/05/2003
Heitor
{ Aqui vai o código com a unit completa }
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, WinSock,
StdCtrls;
type
TFrmMain = class(TForm)
BtIp: TButton;
procedure BtIpClick(Sender: TObject);
private
{ Private declarations }
function GetIP: String;
public
{ Public declarations }
end;
var
FrmMain: TFrmMain;
implementation
{$R *.DFM}
function TFrmMain.GetIP: String;
var WSAData: TWSAData;
HostEnt: PHostEnt;
Name: String;
begin
WSAStartup(2, WSAData);
SetLength(Name, 255);
Gethostname(PChar(Name), 255);
SetLength(Name, StrLen(PChar(Name)));
HostEnt := gethostbyname(PChar(Name));
with HostEnt^ do
begin
Result := Format(´¬d.¬d.¬d.¬d´,[Byte(h_addr^[0]),Byte(h_addr^[1]),
Byte(h_addr^[2]),Byte(h_addr^[3])]);
end;
WSACleanup;
end;
procedure TFrmMain.BtIpClick(Sender: TObject);
begin
FrmMain.Caption := GetIp;
end;
end.
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, WinSock,
StdCtrls;
type
TFrmMain = class(TForm)
BtIp: TButton;
procedure BtIpClick(Sender: TObject);
private
{ Private declarations }
function GetIP: String;
public
{ Public declarations }
end;
var
FrmMain: TFrmMain;
implementation
{$R *.DFM}
function TFrmMain.GetIP: String;
var WSAData: TWSAData;
HostEnt: PHostEnt;
Name: String;
begin
WSAStartup(2, WSAData);
SetLength(Name, 255);
Gethostname(PChar(Name), 255);
SetLength(Name, StrLen(PChar(Name)));
HostEnt := gethostbyname(PChar(Name));
with HostEnt^ do
begin
Result := Format(´¬d.¬d.¬d.¬d´,[Byte(h_addr^[0]),Byte(h_addr^[1]),
Byte(h_addr^[2]),Byte(h_addr^[3])]);
end;
WSACleanup;
end;
procedure TFrmMain.BtIpClick(Sender: TObject);
begin
FrmMain.Caption := GetIp;
end;
end.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)