Como faço p/pegar o ip da máquina q está rodando meu program
Pessoal, preciso pegar o ip da máquina que está executando o programa em Delphi, alguém sabe como fazer isto pelo Delphi?
[]´s
[]´s
Nelson_gpjr
Curtidas 0
Respostas
Abreu
25/09/2003
Oi colega,
Você pode instalar o componente abaixo, ou então incluir a procedure contida nele para adquirir o endereço IP da máquina corrente.
Um abraço.
unit MYIpAddress;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Winsock;
type
TMYIpAddress = class(TComponent)
private
FIPAddress:string;
{ Private declarations }
protected
{ Protected declarations }
public
Constructor Create(Aowner:TComponent);Override;
Destructor Destroy;override;
procedure GetIpAddress;
{ Public declarations }
published
property IPAddress : String read FIPAddress write FIPAddress;
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents(´Abreu´, [TMYIpAddress]);
end;
constructor TMyIpAddress.Create(AOwner:TComponent);
begin
inherited Create(Aowner);
GetIpAddress;
end;
destructor TMyIpAddress.Destroy;
begin
Inherited Destroy;
end;
procedure TMyIpAddress.GetIpAddress;
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);
FIPAddress := ´´;
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[I] <> nil do begin
FIPAddress:=StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
end.
Você pode instalar o componente abaixo, ou então incluir a procedure contida nele para adquirir o endereço IP da máquina corrente.
Um abraço.
unit MYIpAddress;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Winsock;
type
TMYIpAddress = class(TComponent)
private
FIPAddress:string;
{ Private declarations }
protected
{ Protected declarations }
public
Constructor Create(Aowner:TComponent);Override;
Destructor Destroy;override;
procedure GetIpAddress;
{ Public declarations }
published
property IPAddress : String read FIPAddress write FIPAddress;
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents(´Abreu´, [TMYIpAddress]);
end;
constructor TMyIpAddress.Create(AOwner:TComponent);
begin
inherited Create(Aowner);
GetIpAddress;
end;
destructor TMyIpAddress.Destroy;
begin
Inherited Destroy;
end;
procedure TMyIpAddress.GetIpAddress;
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);
FIPAddress := ´´;
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[I] <> nil do begin
FIPAddress:=StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
end.
GOSTEI 0
Edineidaniel
25/09/2003
A fonte do projeto principal ficará algo como:
implementation
uses Winsock;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
wVersionRequested : WORD;
wsaData : TWSAData;
begin
wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
WSACleanup;
end;
procedure TForm1.BtnIPClick(Sender: TObject);
var
p : PHostEnt;
s : array[0..128] of char;
p2 : pchar;
begin
GetHostName(@s, 128);
p := GetHostByName(@s);
Memo1.Lines.Add(p^.h_Name);
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
Memo1.Lines.Add(p2);
end;
end.
t+
Edinei
implementation
uses Winsock;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
wVersionRequested : WORD;
wsaData : TWSAData;
begin
wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
WSACleanup;
end;
procedure TForm1.BtnIPClick(Sender: TObject);
var
p : PHostEnt;
s : array[0..128] of char;
p2 : pchar;
begin
GetHostName(@s, 128);
p := GetHostByName(@s);
Memo1.Lines.Add(p^.h_Name);
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
Memo1.Lines.Add(p2);
end;
end.
t+
Edinei
GOSTEI 0
Rogério
25/09/2003
Oi colega,
Você pode instalar o componente abaixo, ou então incluir a procedure contida nele para adquirir o endereço IP da máquina corrente.
Um abraço.
unit MYIpAddress;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Winsock;
type
TMYIpAddress = class(TComponent)
private
FIPAddress:string;
{ Private declarations }
protected
{ Protected declarations }
public
Constructor Create(Aowner:TComponent);Override;
Destructor Destroy;override;
procedure GetIpAddress;
{ Public declarations }
published
property IPAddress : String read FIPAddress write FIPAddress;
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents(´Abreu´, [TMYIpAddress]);
end;
constructor TMyIpAddress.Create(AOwner:TComponent);
begin
inherited Create(Aowner);
GetIpAddress;
end;
destructor TMyIpAddress.Destroy;
begin
Inherited Destroy;
end;
procedure TMyIpAddress.GetIpAddress;
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);
FIPAddress := ´´;
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[I] <> nil do begin
FIPAddress:=StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
end.
Colega, preciso além do ip, a mascara, o gateway e o dns. Acha que tem algo assim ?
Você pode instalar o componente abaixo, ou então incluir a procedure contida nele para adquirir o endereço IP da máquina corrente.
Um abraço.
unit MYIpAddress;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Winsock;
type
TMYIpAddress = class(TComponent)
private
FIPAddress:string;
{ Private declarations }
protected
{ Protected declarations }
public
Constructor Create(Aowner:TComponent);Override;
Destructor Destroy;override;
procedure GetIpAddress;
{ Public declarations }
published
property IPAddress : String read FIPAddress write FIPAddress;
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents(´Abreu´, [TMYIpAddress]);
end;
constructor TMyIpAddress.Create(AOwner:TComponent);
begin
inherited Create(Aowner);
GetIpAddress;
end;
destructor TMyIpAddress.Destroy;
begin
Inherited Destroy;
end;
procedure TMyIpAddress.GetIpAddress;
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);
FIPAddress := ´´;
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[I] <> nil do begin
FIPAddress:=StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
end.
GOSTEI 0
Eriley Barbosa
25/09/2003
procedure TForm1.Button1Click(Sender: TObject);
begin
WinExec(PChar('command.com /c ipconfig /all >c:\texto.txt'),SW_shownormal);
end; Todas as configurações de rede serão jogadas num arquivo chamado texto.txt em c:. Basta agora que você pegue este arquivo e adicione seu conteúdo a um memo por exemplo. Atenciosamente Eriley
begin
WinExec(PChar('command.com /c ipconfig /all >c:\texto.txt'),SW_shownormal);
end; Todas as configurações de rede serão jogadas num arquivo chamado texto.txt em c:. Basta agora que você pegue este arquivo e adicione seu conteúdo a um memo por exemplo. Atenciosamente Eriley
GOSTEI 0