Foros del Web » Programación para mayores de 30 ;) » Java »

Applet para capturar datos del cliente

Estas en el tema de Applet para capturar datos del cliente en el foro de Java en Foros del Web. Hola Foreros. Ante todo disculpadme porque vengo del .NET y ASP. Así que mis conocimientos en java son prácticamente nulos. El caso es que necesito ...
  #1 (permalink)  
Antiguo 24/03/2007, 02:42
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 20 años, 7 meses
Puntos: 1
Applet para capturar datos del cliente

Hola Foreros.

Ante todo disculpadme porque vengo del .NET y ASP. Así que mis conocimientos en java son prácticamente nulos.

El caso es que necesito capturar unos datos del cliente que bajo programación ejecutada en servidor es complicado. Entonces he pensado en un applet que me recoja los datos aportados a la ejecución de "ipconfig /all" en el sistema. Básicamente necesito la ip local REAL (si estás detrás de un proxy con una ip del tipo 192.168.0.10, con ASP por ejemplo me da la ip del proxy). Y también quiero el nombre del host (el nombre de la máquina).

¿Es posible? Imagino que si porque he visto auténticas maravillas en cuestión de applets.

Saludos y gracias por vuestro tiempo.
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #2 (permalink)  
Antiguo 24/03/2007, 07:17
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 2 meses
Puntos: 51
Re: Applet para capturar datos del cliente

Es posible, y no muy complicado, aunque por razones de seguridad hay que firmar el applet para que recoja la información, ya que es información "sensible".

Hay que ir con cuidado por que hay mucha información en Internet que está obsoleta sobre como firmar applets. EL problema es que ha cambiado a lo largo del tiempo y todavía quedan muuuchos articulos antiguos por ahí, lo cual lo hace un poco lioso.
Un ejemplo que lo hace de forma relativamente moderna es este:
http://java.sun.com/developer/online...ok/signed.html

En cuanto a averiguar la información, depende un poco de la versión de JVM. A partir de Java 6 puedes sacar la información de forma casi directa usando metodos de la clase java.net.NetworkInterface y otras clases del mismo paquete. Con JVM anteriores, según la información que desees, puede que tengas que acabar ejecutando por programa un "ipconfig /all" e interpretar los resultados con expresiones regulares.

S!
  #3 (permalink)  
Antiguo 24/03/2007, 07:43
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 20 años, 7 meses
Puntos: 1
Re: Applet para capturar datos del cliente

Muchas gracias GreenEyed. Es un comienzo.

A ver cómo me las apaño.

Saludos.
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #4 (permalink)  
Antiguo 25/03/2007, 04:30
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 19 años
Puntos: 19
Re: Applet para capturar datos del cliente

No se si está desfasado, pero en este link te muestran como firmar applets con las herramientas de sun, en castellano:

http://www.adictosaltrabajo.com/tuto...=app_keyt_jars

Y aquí un ejemplo sencillo de applet firmado que crea un fichero jpg en c:
el código: http://club.idecnet.com/~ccastano/femepa/GuardaDibu.rar
implementado: http://club.idecnet.com/~ccastano/femepa/050106.htm

salu2
  #5 (permalink)  
Antiguo 25/03/2007, 05:05
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 2 meses
Puntos: 51
Re: Applet para capturar datos del cliente

Parece que es actualizado, aunque no acabo de entender y no explica para que coloca la parte del init en un bloque "doPrivileged", aunque parece que sea para detectar si no tiene permisos y mostrar un mensaje de error, en vez de que salga una excepcion por consola.

Normalmente los que estan desfasados suelen hablar de "un metodo para el Netscape y otro para el Explorer usando ficheros .cab..."
  #6 (permalink)  
Antiguo 11/04/2007, 10:47
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 20 años, 7 meses
Puntos: 1
Re: Applet para capturar datos del cliente

Bueno... investigando he encontrado esta web

http://reglos.de/myaddress/MyAddress.html

Cuando la probé me creía salvado. Pero después de probar con varios equipos de una subred, no se por qué razón algunos (pocos) me mostraba la ip local 127.0.0.1

Ya no se qué hacer. Seguiré investigando. Creía que esto sería más fácil.

Saludos.
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #7 (permalink)  
Antiguo 11/04/2007, 11:37
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 2 meses
Puntos: 51
Re: Applet para capturar datos del cliente

Umm, dado que no ofrece el codigo fuente, no te puedo decir mucho, pero seguramente no trata todos los casos posibles, ya que cuando un ordenador tiene configurados varios interfaces de red, en realidad tiene varias direcciones.

A mi por ejemplo teoricamente dice que me tendria que sacar la IP externa y me esta mostrando la interna de red local, así que muy fino no va.

La pagina es del 2003 y desde entonces ha llovido mucho :(.


Igualmente, cuando tengas todos esos datos tendrás que mandarselos al servidor, ¿no? Aunque bueno, eso ya es harina de otro costal. .
  #8 (permalink)  
Antiguo 11/04/2007, 13:22
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 20 años, 7 meses
Puntos: 1
Re: Applet para capturar datos del cliente

GreenEyed, precisamente lo que a mí me interesa son los datos de la red interna.

Si tu equipo pertenece a una subred por ejemplo del tipo 192.168.X.X o 10.X.X.X es esa la ip que yo quiero. La ip del ADSL o del proxy por el que sale es fácil de saber por variables de servidor. Pero tanto la ip interna como el nombre del host es lo que quiero.

A ver si pongo un código que he encontrado por ahí (lo tengo en el curro).

Saludos.
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #9 (permalink)  
Antiguo 11/04/2007, 14:46
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 2 meses
Puntos: 51
Re: Applet para capturar datos del cliente

Cita:
Iniciado por Phoncadiz Ver Mensaje
GreenEyed, precisamente lo que a mí me interesa son los datos de la red interna.
Si, si. Sólo decía que el applet de ejemplo decía que me mostraría la externa y me mostraba la interna, por lo que no me parecía muy fiable.

Cita:
Iniciado por Phoncadiz Ver Mensaje
Si tu equipo pertenece a una subred por ejemplo del tipo 192.168.X.X o 10.X.X.X es esa la ip que yo quiero. La ip del ADSL o del proxy por el que sale es fácil de saber por variables de servidor. Pero tanto la ip interna como el nombre del host es lo que quiero.

A ver si pongo un código que he encontrado por ahí (lo tengo en el curro).

Saludos.
¿Que requerimientos/restricciones tienes en cuanto al JDK a usar? Un codigo que lea las direcciones del ordenador en si no es complejo.

Prueba con un codigo tal que así
Código:
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;
public class NetTest
{
  public static void main(String[] args) throws Exception
  {
    for(Enumeration ni = NetworkInterface.getNetworkInterfaces();ni.hasMoreElements();)
    {
      NetworkInterface theNI = (NetworkInterface)ni.nextElement();
      System.err.println("NetworkInterface: " + theNI.getDisplayName());
      for(Enumeration ia = theNI.getInetAddresses();ia.hasMoreElements();)
      {
        InetAddress anAddress = (InetAddress)ia.nextElement();
        System.err.println("anAddress: " + anAddress);
        System.err.println("isLoopbackAddress: " + anAddress.isLoopbackAddress());
        System.err.println("isSiteLocalAddress: " + anAddress.isSiteLocalAddress());
      }
    }
  }
}
A ver si eso te daría de alguna forma la información que necesitas (no te da en si la información, pero es para que veas que tipo de información se puede sacar, luego hay que jugar con ella).

Eso debería funcionar hasta con un JDK 1.4, con Java 6 se pueden sacar mas cosas como la Hardware Address, etc. pero no creo que lo tengas instalado en los clientes.

S!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:55.