2011-08-09 12 views
0

System.getProperty( "user.name")を使用して自分のコンピュータのログイン名を取得しました。しかし、私はすでにInetAddressを使っているIPを持つ他のコンピュータのログインが必要です。どうすればいいのですか?システムの表示。すべてのIPのプロパティにはログイン名が表示されません。ログインLAN内のコンピュータのユーザー名java

ありがとうございます!

すべてのPCはLinuxで動作します。現在、LAN上の他のマシンの現在ログインしているユーザーを探しています。

マシンが稼動しているかどうかをLAN上のすべてのマシンにpingしています。私はそれがIPなので、ログイン名も取得したいのです。

+0

LAN上の他のマシンで現在ログインしているユーザーを探していますか?ユーザーはどのようなOSですか、それとも混在環境ですか? – arunkumar

+0

これは理にかなっていません。コンピュータのIPアドレスを持っていても、誰もが実際にコンピュータにログインしているわけではありません。 –

+0

@ Maurice - アクティブなマシンにログインしているユーザーの名前を知りたいと思います。 –

答えて

3

これを「そのまま」実行できた場合、これはシステムの大きなセキュリティホールになります。それについて考えてみてください。そして、私たちは、複数のユーザーがマシンにログインしているという問題に遭遇することさえできません。

これ以上の説明がない限り、この質問はあまりにも曖昧です。

実際に、sshを使用して安全にマシンにログオンし、ログインしているユーザーのリストを照会することができます。 ssh鍵ペアを生成し、プログラムでログインしてコマンドを発行できるJava端末ライブラリを使用する必要があります。

私たちは実際には(異なる目的のために)このように動作する製品を持っています。我々は3rd party SSH libraryを使って私たちのために努力しています。

また、接続できる独自の「ログインユーザー」デーモンを実装してインストールすることもできますし、Webアプリケーションとしてインストールすることもできますが、もう一度、適切な認証を使用してあなたのサービスを安全に使用するようにしてください。ただし、この後者の解決方法では、照会する各マシンでアプリケーションまたは少なくともWebサーバーが実行されている必要があります。

0

最良の解決策は、マシンの固定ポートをリッスンするソフトウェアをインストールすることです。マシンのアドレスを取得すると、プログラムは情報を収集して返信することができます。それ以外にも、存在するそのような特徴は、いろいろ明らかな理由から存在しません。

しかし、このソリューションでも、リストされたIP上にリスニングソケットがあることを保証するものではありません(ソフトウェアは動作することが保証されていません)。質問と同じくらい曖昧です。

+0

詳細:私はLibvirtのJava APIを使用しており、ネットワーク上の他のマシンのQemuハイパーバイザーに接続する必要があります。これは、qemu + ssh://[email protected]/systemを呼び出して行います。これまでは、ネットワーク上の他のマシンのIPアドレスを取得することができます。ログイン名がなければQemuに接続できません。ログイン名を省略しようとすると、自分のPCのログイン名に置き換えられます。誰か助けてくれますか? –

関連する問題