Java nome e máquina atual usuário conectado?
-
19-08-2019 - |
Pergunta
É possível obter o nome do usuário conectado no momento (Windows / Unix) eo nome da máquina?
Eu suponho que é apenas uma propriedade de alguma classe ambiente estático.
Eu encontrei este para o nome de usuário
com.sun.security.auth.module.NTSystem NTSystem = new
com.sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());
e isso para o nome da máquina:
import java.net.InetAddress;
...
String computerName;
...
try {
computerName = InetAddress.getLocalHost().getHostName();
}
catch(Exception ex) {
...
}
É o primeiro apenas para Windows?
E o que o segundo faz, se você não tem um conjunto hostname?
Solução
Para obter o usuário conectado no momento:
System.getProperty("user.name"); //platform independent
e o nome da máquina:
java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();
System.out.println("Hostname of local machine: " + localMachine.getHostName());
Outras dicas
Para obter o usuário conectado no momento:
System.getProperty("user.name");
Para obter o nome do host da máquina:
InetAddress.getLocalHost().getHostName();
Para responder à última parte da sua pergunta, a API Java diz que getHostName () irá retornar
o nome do host para este endereço de IP, ou se a operação não é permitida pela verificação de segurança, a representação textual do endereço IP.
Usando user.name
não é seguro como variáveis ??de ambiente pode ser falsificado. Método que você estava usando é bom, existem métodos semelhantes para OS baseado em UNIX, bem
Para obter o logado no caminho do usuário:
System.getProperty("user.home");