QUOTE
Gostaria de saber se tem algum código ou rotina que me enviasse o ip de uma máquina
ai vai uma função para isto
CODE
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
USES WinSock;
function GetLocalIP : string;
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);
Result := '';
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
result:=StrPas(inet_ntoa(pptr^[I]^));
result := StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
LABEL1.CAPTION := GetLocalIP;
end;
end.
OBS: existem maneiras mais simples para se conseguir a mesma coisa.... já fiz algo parecido com o que voce esta querendo, implementei uma rotina num timer que verifica a cada segundo quando é feita a conexão com a internet ( não roda em segundo plano e sim dentro do programa ) depois usando componentes do indy do delphi 7 criei uma rotina para enviar automaticamente um email para mim com o ip da maquina do cliente usando o meu servidor de email, sempre que a conexão for refeita
Mas so consegui fazer isto usando o delphi 7, entretanto se a maquina estiver numa rede interna e usando roteador voce não vai conseguir o ip da maquina e sim o ip do servidor de internet.
abraço