Get IP...
13/01/2004
0
rede?
Eu uso a Funcao GetIp,mas quando estou conectado na Net,ela me retorna p IP do servidor.
Preciso que retorne o IP local de minha maquina (192.168.20.0 etc).
Obrigado a quem me ajudar
Kroki
Posts
14/01/2004
Kroki
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
begin
Exit;
end;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[I] <> nil do
begin
result:=StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
14/01/2004
Zumbi
// Retorna o IP de sua máquina no momento em que
// você está conectado
function 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;
//
// Declare a Winsock na clausula uses da unit
//
12/07/2021
Wellington Telles
O segundo código foi copiado e tinha uma parte antes.
13/07/2021
Emerson Nascimento
function GetIP: string; var WSAData: TWSAData; HostEnt: PHostEnt; Name: PAnsiChar; begin WSAStartup(2, WSAData); Name := AllocMem(255); GetHostName(Name, 255); HostEnt := GetHostByName(Name); with HostEnt^ do Result := Format('%d.%d.%d.%d',[Byte(h_addr^[0]),Byte(h_addr^[1]),Byte(h_addr^[2]),Byte(h_addr^[3])]); WSACleanup; end;
13/07/2021
Emerson Nascimento
Clique aqui para fazer login e interagir na Comunidade :)