Gostaria de saber como pegar o ip do cliente com um applet?
esse cara conseguiu…
http://reglos.de/myaddress/MyAddress.html
Alguém sabe como? Tem alguma idéia?
Olá
Dica: Use DJ Java Decompiler ou outro descompilador qualquer para ver o código Java da applet dele.
[]s
Luca
então Luca… dá pra vc descompilar pra mim, o DJ Java Descompiler percisa de licença, e os cara não me madam o serialnumber…
Obrigado
Pelo que vi, o tal applet só faz algo parecido com o seguinte:
import java.net.*;
public class Test161 {
public static void main(String[] args) {
try {
InetAddress localaddr = InetAddress.getLocalHost();
System.out.println("main Local IP Address : " +localaddr.getHostAddress());
System.out.println("main Local hostname : " + localaddr.getHostName());
}
catch (UnknownHostException e) {
System.err.println("Can't detect localhost : " + e);
}
}
}
Exemplo de saída:
main Local IP Address : 123.45.67.89
main Local hostname : beleriand.middlearth.com
Se o seu acesso à Internet tem NAT ou alguma coisa que faça seu endereço Internet ser diferente do endereço local (é o meu caso), o valor que o applet vai lhe mostrar não é o que você (provavelmente) quer.
[quote=thingol]Pelo que vi, o tal applet só faz algo parecido com o seguinte:
import java.net.*;
public class Test161 {
public static void main(String[] args) {
try {
InetAddress localaddr = InetAddress.getLocalHost();
System.out.println("main Local IP Address : " +localaddr.getHostAddress());
System.out.println("main Local hostname : " + localaddr.getHostName());
}
catch (UnknownHostException e) {
System.err.println("Can't detect localhost : " + e);
}
}
}
Exemplo de saída:
main Local IP Address : 123.45.67.89
main Local hostname : beleriand.middlearth.com
Se o seu acesso à Internet tem NAT ou alguma coisa que faça seu endereço Internet ser diferente do endereço local (é o meu caso), o valor que o applet vai lhe mostrar não é o que você (provavelmente) quer.
[/quote]
eu tinha feito algo assim, mas ele só retorna o localhost???
“Ele” quem? Meu programa ou o applet?
Pelo que vi, o tal applet me mostrou o localhost; não o endereço “externo” na Internet.
Olá
A applet MyAddress não presta, mostra o IP da rede local.
Para que quer pegar o IP? Se for para identificar o usuário cliente isto quase não serve para nada. Se for para isto use o MAC Address. Pegue com uma applet assinada rodando direto ipconfig /all (ou similar no Linux) e fazendo parse do resultado, caso não use o Java 6 que já tem isto na API.
[]s
Luca
[quote=Luca]Olá
A applet MyAddress não presta, mostra o IP da rede local.
Para que quer pegar o IP? Se for para identificar o usuário cliente isto quase não serve para nada. Se for para isto use o MAC Address. Pegue com uma applet assinada rodando direto ipconfig /all (ou similar no Linux) e fazendo parse do resultado, caso não use o Java 6 que já tem isto na API.
[]s
Luca[/quote]
applet assinada…num vai rolar…acho que vou pegar o ip usando cgi perl, é mais fácil o Cliente é cheio de frescura…
Olá
Você não respondeu para que quer o IP. Eu duvido que com Perl você consiga um IP atrás de um NAT.
[]s
Luca
Luca…é assim, num sistema aqui temos que fazer com que só os usários de IP local possam ter acesso a um diretório no htdocs do apache http server, então, eu configurei o apache para só permitir acesso dos clientes com os ip’s tais, entretanto, eu gostaria de fazer a seleção de quais usuários vão pra onde usando os IP’s deles…Fui claro??
A propósito…desculpe a ignorância, mas o que é NAT??
opss.
Olá
Seria MUITO mais fácil usar a própria segurança do Apache com login e senha, pois pelo IP basta o cara sentar em outra máquinha que já tem acesso.
[]s
Luca
[quote=Luca]Olá
Seria MUITO mais fácil usar a própria segurança do Apache com login e senha, pois pelo IP basta o cara sentar em outra máquinha que já tem acesso.
[]s
Luca[/quote]
Tá implementado assim, mas adivinha… o cliente num quer eheheheh
Olá
[quote=LuizClaudio]
Tá implementado assim, mas adivinha… o cliente num quer eheheheh[/quote]
Então não foi explicado direito ao cliente que proteção com IP é tolice. Isto é beabá de rede e qualquer garoto é capaz de burlar.
[]s
Luca
[quote=Luca]Olá
[quote=LuizClaudio]
Tá implementado assim, mas adivinha… o cliente num quer eheheheh[/quote]
Então não foi explicado direito ao cliente que proteção com IP é tolice. Isto é beabá de rede e qualquer garoto é capaz de burlar.
[]s
Luca[/quote]
Luca…concordo, sou só o programdor, é meu chefe que fala com o cliente
Hum, se você programa em CGI, ou tem acesso às variáveis CGI (que é o caso de quase qualquer linguagem Web), o IP do cliente (ou seja lá o que for isso) é facilmente disponível. Como foi dito, isso diz apenas qual o IP de uma das “pontas” do socket; se há algum NAT ou não no meio isso não vem ao caso.
Então…
Quanto a segurança que o Luca tinha falado…neste caso específico, num tem muito problema, é só um html diferente pra rede local e um diferente para o usuário de fora da rede, a parte que é realmete restrita tem login…Como o thingol falou, fiz com cgi, mais ou menos como abaixo, só fiz umas alterações para manipular e comparar a string hostmane, usando expressão regular, sei que essa não é uma comunidade cgi, mas coloco o post para ajudar quem tiver um problema parecido…Depois o moderador edita se achar não apropriado, inté…obrigado.
#!/usr/bin/perl
use strict;
use warnings;
my %redirects = (in => "http://theserver/in.html",
out => "http://theserver/out.html");
my $hostname = $ENV{REMOTE_ADDR};
if ( $hostname =~ "888.888.888.888" ){
print "Status: 302 Moved\nLocation: $redirects{in}\n\n";
}else{
print "Status: 302 Moved\nLocation: $redirects{out}\n\n";
}
Basta essa linha em sua página jsp
IP cliente : <%=request.getHeader("X-FORWARDED-FOR")%>
espero ter ajudado
[quote=phmjunior]Basta essa linha em sua página jsp
IP cliente : <%=request.getHeader("X-FORWARDED-FOR")%>
espero ter ajudado[/quote]
Mas para segurança o “X-FOWARDED-FOR” não serve. Pois é possível editar esse campo.