Ява текущее имя компьютера и пользователя, вошедшего в систему?
можно ли получить имя текущего зарегистрированного пользователя (Windows / Unix) и имя хоста машины?
Я предполагаю, что это просто свойство некоторых статического класса.
Я нашел это для имени пользователя
com.sun.security.auth.module.NTSystem NTSystem = new
com.sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());
и это для машины имя:
import java.net.InetAddress;
...
String computerName;
...
try {
computerName = InetAddress.getLocalHost().getHostName();
}
catch(Exception ex) {
...
}
первый только для Windows?
и что будет делать второй, если у вас нет набора имени хоста?
4 ответов:
чтобы получить текущего зарегистрированного пользователя:
System.getProperty("user.name"); //platform independentи имя машины:
java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost(); System.out.println("Hostname of local machine: " + localMachine.getHostName());
чтобы получить текущего зарегистрированного пользователя:
System.getProperty("user.name");чтобы получить имя хоста машины:
InetAddress.getLocalHost().getHostName();чтобы ответить на последнюю часть вашего вопроса, Java API говорит, что getHostName () вернет
имя хоста для этого IP-адреса, или если операция не разрешена проверкой безопасности, текстовое представление IP-адреса.
С помощью
user.nameне является безопасным, поскольку переменные среды могут быть подделаны. Метод, который вы использовали, хорош, есть аналогичные методы и для ОС на базе unix
Comments