Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Obtener IP con el nombre del Equipo (https://www.clubdelphi.com/foros/showthread.php?t=93607)

Rc96 27-11-2018 17:34:27

Obtener IP con el nombre del Equipo
 
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

Código Delphi [-]

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

Código Delphi [-]
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.


La franja horaria es GMT +2. Ahora son las 00:45:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi