168

現在ログインしているユーザー (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専用ですか?

そして、ホスト名が設定されていない場合、2 番目のものは何をしますか?

4

4 に答える 4

271

現在ログインしているユーザーを取得するには:

System.getProperty("user.name"); //platform independent 

およびマシンのホスト名:

java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();
System.out.println("Hostname of local machine: " + localMachine.getHostName());
于 2009-01-23T16:08:23.220 に答える
100

現在ログインしているユーザーを取得するには:

System.getProperty("user.name");

マシンのホスト名を取得するには:

InetAddress.getLocalHost().getHostName();

あなたの質問の最後の部分に答えるために、Java APIは getHostName() が返すと言います

この IP アドレスのホスト名。セキュリティ チェックで操作が許可されない場合は、IP アドレスのテキスト表現。

于 2009-01-23T16:28:48.747 に答える
11

user.name環境変数が偽造される可能性があるため、使用は安全ではありません。あなたが使っていた方法は良いです、UNIXベースのOSにも同様の方法があります

于 2012-09-24T12:58:10.647 に答える