Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Saber Ip de una PC??? (https://www.clubdelphi.com/foros/showthread.php?t=32583)

JELIRM 09-06-2006 20:38:18

Saber Ip de una PC???
 
hola, foro.

Saben como hacer para una saber la ip y de una maquina en una red??.
lo que quiero hacer especificamente es poner este programa(Identificador de Ips) en un servidor, y cuando una maquina X(Cliente) corra este programa el servidor diga que ip fue la que dio esa peticion..
ya sea en codigo delphi o ensamblador..


me ayudan porfavor..

de antemano gracias.


//Las caidas te hacen aprender a caminar

Sotrono 09-06-2006 20:56:33

Hola, qué tal si te das una vuelta por el buscador del foro??

Saludos!!

JELIRM 09-06-2006 22:10:17

SI YA BUSQUE, pero no es lo que quiero.
lo que yo quiero es un preograma proveedor de numeros ips a otras(Clientes) conectadas donde esta el servidor, esto lo he logrado hacer con un bat, pero lo quiero hacer con un programa ya que un bat no es seguro porque lo pueden modificar el codigo bat es el siguiente:

@echo.
@ipconfig | find "IP Address"
@echo.
@pause

este codigo lo tengo en un archivo bat en el servidor, y desde una cliente lo ejecuto y el servidor devuelve el numero ip pero de la cliente, y esto mismo lo quiero hacer pero en un programa ya sea de delphi o ensamblador
alguien sabe como??

CCCP 02-07-2006 00:27:41

Saber el api de un pc
 
Código Delphi [-]
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    Function GetIp(var Host:String):String;
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
Uses WinSock;
{$R *.dfm}
Function TForm1.GetIp(var Host:String):String;
type
  TAPInAddr = Array[0..100] of PInAddr;
  PAPInAddr = ^TAPInAddr;
var
  WSAData: TWSAData;
  HostEntPtr: PHostEnt;
  pptr: PAPInAddr;
  i,iPos: Integer;
begin
  Result:='';
  If Host <> '' then Begin
     WSAStartUp( $101, WSAData );
     HostEntPtr := GetHostByName( PChar( Host ) );
     if HostEntPtr = NIL then GetIp:='';
     If Assigned(HostEntPtr) then Begin
     pptr := PAPInAddr( HostEntPtr^.h_addr_list );
     i := 0;
     while pptr^[i] <> NIL do begin
      Result:=inet_ntoa( pptr^[i]^ );
      Inc( i );
     end;
     end;
     WSACleanUp();
  end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var Host:String;
begin
 Host:='HOST';
 Showmessage(GetIp(Host))
end;
end.

nemesio 02-07-2006 22:28:38

Revisa este viejo truco de autoría de Borland.


Código Delphi [-]
//De las Faq's de Borland)

//El ejemplo siguiente requiere el uso del API Winsock incorporado en el
//WinSock.pas
uses
WinSock;

procedure GetHostInfo(var Name, Address: string);
var
WSAData: TWSAData;
HostEnt: PHostEnt;
begin
{ no error checking...}
WSAStartup(2, WSAData);
SetLength(Name, 255);
Gethostname(PChar(Name), 255);
SetLength(Name, StrLen(PChar(Name)));
HostEnt := gethostbyname(PChar(Name));
with HostEnt^ do
Address := Format('%d.%d.%d.%d',[
Byte(h_addr^[0]),
Byte(h_addr^[1]),
Byte(h_addr^[2]),
Byte(h_addr^[3])]);
WSACleanup;
end;


La franja horaria es GMT +2. Ahora son las 23:45:14.

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