java - móviles - manual de programacion android pdf
¿Nombre de la máquina actual de Java y usuario conectado? (4)
¿Es posible obtener el nombre del usuario actualmente conectado (Windows / Unix) y el nombre de host de la máquina?
Supongo que es solo una propiedad de alguna clase de entorno estático.
Encontré esto para el nombre de usuario
com.sun.security.auth.module.NTSystem NTSystem = new
com.sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());
y esto para el nombre de la máquina:
import java.net.InetAddress;
...
String computerName;
...
try {
computerName = InetAddress.getLocalHost().getHostName();
}
catch(Exception ex) {
...
}
¿Es el primero solo para Windows?
¿Y qué hará el segundo, si no tiene un conjunto de nombres de host?
Para obtener el usuario actualmente conectado:
System.getProperty("user.name");
Para obtener el nombre de host de la máquina:
InetAddress.getLocalHost().getHostName();
Para responder la última parte de su pregunta, la API de Java dice que getHostName () devolverá
el nombre de host para esta dirección IP, o si la verificación de seguridad no permite la operación, la representación textual de la dirección IP.
Para obtener el usuario actualmente conectado:
System.getProperty("user.name"); //platform independent
y el nombre de host de la máquina:
java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();
System.out.println("Hostname of local machine: " + localMachine.getHostName());
Para obtener la ruta del usuario actualmente conectado:
System.getProperty("user.home");
Usar user.name
no es seguro ya que las variables de entorno pueden ser falsificadas. El método que estaba usando es bueno, existen métodos similares para el sistema operativo basado en Unix también