Buscar

Ip interno + externo + nome da maquina + usuario logado

Código

// ai vai uma "dica" para quem esta precisando saber algumas informações da maquina... coloquei 4 botões no form e 4 labels, renomeei os labels apenas p/ facilitar...

unit ip;

interface

uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  StdCtrls,
  ExtCtrls,
  Buttons,
  ComCtrls,
  IdHTTP,
  registry,
  Menus,
  Winsock,
  IdStack;  
type
  TForm1 = class(TForm)

    LblIPInterno:     TLabel;
    LblNomeDaMaquina: TLabel;
    LblIPExterno:     TLabel;
    LblUsuarioLogado: TLabel;
    Button1:          TButton;
    Button2:          TButton;
    Button3:          TButton;
    Button4:          TButton;

    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{------------------------------ IP Externo ------------------------------------}
procedure TForm1.Button1Click(Sender: TObject);
var
  IP                : TIdHTTP;
  Temporario        : String;
  Endereco,Result   : String;
  X                 : Integer;
begin
 try
    IP := TIdHTTP.Create(nil);
    with IP do
    begin
      Host       := 'checkip.dyndns.org';
      Temporario := Get('checkip.dyndns.org');
      For X := 1 to Length(Temporario) do
        if (Temporario[X] in ['0'..'9']) or (Temporario[X] = '.') then
           Endereco := Endereco + Temporario[X];
    end;
    Result := Trim(Endereco);
    IP.Free;
    LblIPExterno.Caption := Result
  except
    Result := 'ERRO';
  end;
end;

{------------------------------ IP Externo ------------------------------------}
procedure TForm1.Button2Click(Sender: TObject);
var
  WSAData      : TWSAData;
  HostEnt      : PHostEnt;
  Name, Result : string;
begin
  WSAStartup(2, WSAData);
  SetLength(Name, 255);
  Gethostname(PChar(Name), 255);
  SetLength(Name, StrLen(PChar(Name)));
  HostEnt := gethostbyname(PChar(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;
  LblIPInterno.Caption := Result;
end;

{----------------------------- Nome da Maquina --------------------------------}
Function NomeMaquina : String;
// Retorna o nome do computador
var
  lpBuffer : PChar;
  nSize    : DWord;
const Buff_Size = MAX_COMPUTERNAME_LENGTH + 1;
  begin
  try
    nSize    := Buff_Size;
    lpBuffer := StrAlloc(Buff_Size);
    GetComputerName(lpBuffer,nSize);
    Result   := String(lpBuffer);
    StrDispose(lpBuffer);
  except
    Result := '';
  end;
end;
//----------------------------------------------------------------------------//
procedure TForm1.Button3Click(Sender: TObject);
begin
  LblNomeDaMaquina.Caption := NomeMaquina;
end;
//----------------------------------------------------------------------------//

{------------------------------- Usuario Logado -------------------------------}
Function usuario: string;
var
  buffer: array[0..255] of char;
  size: dword;
begin
  size := 256;
    if GetUserName(buffer, size) then
       Result := buffer
    else
       Result := ''
end;
//----------------------------------------------------------------------------//
procedure TForm1.Button4Click(Sender: TObject);
begin
  LblUsuarioLogado.Caption := Usuario;
end;
//----------------------------------------------------------------------------//
end.
 

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Forms
Adicionada dia: 08/12/07
Por: Gynrock
Visualizada: 14299 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009