PDA

Ver la Versión Completa : Obtener IP con el nombre del Equipo


Rc96
27-11-2018, 17:34:27
Saludos,

Hace unos días estoy intentando obtener las IP que están dentro de la red muy en especial las PC, para ello se me ocurrió obtener los equipos en el Active Distory junto con las IP pero por el AD no logro obtener las IP, entonces estoy intentado obtener las IP con los nombres de los equipos pero no se me ocurre como. Saben alguna forma de hacerlo? :confused:

bucanero
27-11-2018, 18:36:43
Hola Rc96

yo utilizo la siguiente funciónes para saber la IP del equipo y el nombre del equipo



uses
Types, Winapi.Windows, Winsock;

function GetComputerName: string;
var
buffer: array[0..255] of char;
size: dword;
begin
size := 256;
if Winapi.Windows.GetComputerName(buffer, size) then
Result := buffer
else
Result := ''
end;

function GetIPSystem: string;
var
wVersionRequested: WORD;
wsaData: TWSAData;
p: PHostEnt;
s: array[0..128] of char;
begin
{Start up WinSock}
wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);

{Get the computer name}
GetHostName(@s, 128);
p := GetHostByName(@s);

{Get the IpAddress}
Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);

{Close WinSock}
WSACleanup;
end;



No se si en las ultimas versiones de DELPHI ya incluirá algunas funciones que lo hagan mas directamente

Un saludo

Rc96
27-11-2018, 21:46:08
Saludos Bucanero,


El codigo que enviaste funciona pero ya lo habia visto, el problema es que en el sistema yo ya obtengo el nombre de todos los equipos en el dominio y lo que quiero es recorrer cada linea donde esta el nombre del equipo y obtener la ip del mismo de forma remota. La informacion que enviaste es de provecho lo que no entiendo es si con ella pueda darle yo mismo el nombre del equipo y traerme su ip.



Gracias por tu colaboracion.

escafandra
27-11-2018, 22:12:25
function GetIp(Host: AnsiString): string;
var
WSAData: TWSADATA;
HostEnt: phostent;
begin
Result:= '';
if WSAStartup(MAKEWORD(1, 1), WSADATA) = 0 then
begin
HostEnt:= gethostbyname(PAnsiChar(Host));
if HostEnt <> nil then
Result:= inet_ntoa(PInAddr(HostEnt.h_addr_list^)^);
WSACleanup;
end;
end;

Saludos.