como Descobrir o IP da Maquina local?
Aê galera....
Seguinte:
Estou precisando receber por e-mail o ip da minha máquina, explico... eu tenho velox (banda larga) e gostaria de´entrar´ na minha máquina de casa devezenquando enquanto ainda estou no meu trabalho. Acontece que o IP do velox é dinâmico e quando c reinicia a máquina, dá logoff ou outra coisa assim, o velox cai. O que eu queria era receber um e-mail com esse numero períodicamente.
Pensei então em fazer um programinha que eu carregaria na inicialização da minha máquina em casa pra fazer isso. O que eu quero é uma forma de saber o IP da máquina em tempo de execução.
desde já agradeço
Seguinte:
Estou precisando receber por e-mail o ip da minha máquina, explico... eu tenho velox (banda larga) e gostaria de´entrar´ na minha máquina de casa devezenquando enquanto ainda estou no meu trabalho. Acontece que o IP do velox é dinâmico e quando c reinicia a máquina, dá logoff ou outra coisa assim, o velox cai. O que eu queria era receber um e-mail com esse numero períodicamente.
Pensei então em fazer um programinha que eu carregaria na inicialização da minha máquina em casa pra fazer isso. O que eu quero é uma forma de saber o IP da máquina em tempo de execução.
desde já agradeço
Flavio Sanches
Curtidas 0
Respostas
Otto
14/11/2003
Caro amigo flavio,
uma das maneiras de pegar o IP local da maquina é fazer o seguinte:
antes de tudo, declare a clausula [u:48c612875d]WinSock [/u:48c612875d]na seção [b:48c612875d]Users[/b:48c612875d], depois em [b:48c612875d]private[/b:48c612875d], adicione o seguinte:
function GetIP:string;
depois
coloque a seguinte rotina no form1
function T[b:48c612875d]Form1[/b:48c612875d].GetIP:string;
var
WSAData: TWSAData;
HostEnt: PHostEnt;
Name:string;
begin
WSAStartup(2, WSAData);
SetLength(Name, 255);
Gethostname(PChar(Name), 255);
SetLength(Name, StrLen(PChar(Name)));
HostEnt := gethostbyname(PChar(Name));
with HostEnt^ do
begin
Result := Name+´ ´+Format(´¬d.¬d.¬d.¬d´,
[Byte(h_addr^[0]),Byte(h_addr^[1]),
Byte(h_addr^[2]),Byte(h_addr^[3])]);
end;
WSACleanup;
end;
-------
Pronto, agora para pegar o Ip vc faz o seguinte:
adicione um label no form e no evento OnCreate do form escreva o seguinte:
label1.[b:48c612875d]caption [/b:48c612875d][color=red:48c612875d]:=[/color:48c612875d] [b:48c612875d]GetIP[/b:48c612875d];
pronto... flw...
uma das maneiras de pegar o IP local da maquina é fazer o seguinte:
antes de tudo, declare a clausula [u:48c612875d]WinSock [/u:48c612875d]na seção [b:48c612875d]Users[/b:48c612875d], depois em [b:48c612875d]private[/b:48c612875d], adicione o seguinte:
function GetIP:string;
depois
coloque a seguinte rotina no form1
function T[b:48c612875d]Form1[/b:48c612875d].GetIP:string;
var
WSAData: TWSAData;
HostEnt: PHostEnt;
Name:string;
begin
WSAStartup(2, WSAData);
SetLength(Name, 255);
Gethostname(PChar(Name), 255);
SetLength(Name, StrLen(PChar(Name)));
HostEnt := gethostbyname(PChar(Name));
with HostEnt^ do
begin
Result := Name+´ ´+Format(´¬d.¬d.¬d.¬d´,
[Byte(h_addr^[0]),Byte(h_addr^[1]),
Byte(h_addr^[2]),Byte(h_addr^[3])]);
end;
WSACleanup;
end;
-------
Pronto, agora para pegar o Ip vc faz o seguinte:
adicione um label no form e no evento OnCreate do form escreva o seguinte:
label1.[b:48c612875d]caption [/b:48c612875d][color=red:48c612875d]:=[/color:48c612875d] [b:48c612875d]GetIP[/b:48c612875d];
pronto... flw...
GOSTEI 0
Flavio Sanches
14/11/2003
valeu, mano.... Vou tentar isso
GOSTEI 0
Celo-faveri
14/11/2003
amigo...você também pode fazer o seguinte:
Antes, declare na uses o WinSock
depois adicione esta função:
como vc quer q o programa inicie automaticamente, então coloque este código em um timer:
Se quiseres, pode por no OnCreate do Form.
Aí é só mandar p/ o e-mail o caption do Label.
T+ :wink:
Antes, declare na uses o WinSock
depois adicione esta função:
function LocalIP : 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]^));
Inc(I);
end;
WSACleanup;
end;
como vc quer q o programa inicie automaticamente, então coloque este código em um timer:
procedure TForm1.timeIPTimer(Sender: TObject);
begin
Label1.Caption := LocalIP;
end;
Se quiseres, pode por no OnCreate do Form.
Aí é só mandar p/ o e-mail o caption do Label.
T+ :wink:
GOSTEI 0
Rfpsatin
14/11/2003
Seguinte, deixa aproveitar a oportunidade.
Tenho um Modem ADSL [b:4102872895]router[/b:4102872895] Q bloqueia isso. COmo pego o IP do modem?
abraço
Tenho um Modem ADSL [b:4102872895]router[/b:4102872895] Q bloqueia isso. COmo pego o IP do modem?
abraço
GOSTEI 0
Carlos Eduardo
14/11/2003
Bem Estava revirando o Fórum e cheguei aqui kkkk... achei da hora que você quer fazer mas....
uma pergunta Como Vc se conecta na maquina com esse IP? através da área remota ? sorry sou iniciante rs
uma pergunta Como Vc se conecta na maquina com esse IP? através da área remota ? sorry sou iniciante rs
GOSTEI 0