who
コマンドを使用して、リモートマシン上の他のユーザーの名前を確認できます... これらのユーザーのIPアドレスも知りたいです...
コマンド/sbin/ifconfing
とnetstat
が肯定的な結果を得ることができませんでした...
LinuxとUnixの両方と互換性のあるこのソリューションが必要です...
そのユーティリティのコマンドはありますか?スクリプトを記述したり、一種のパイプを使用したりする必要がありますか?
w
パッケージの一部であるprocps
コマンドを試してください。
$ w
21:12:09 up 6 days, 7:42, 1 user, load average: 0.27, 1.08, 1.64
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
h3xx pts/11 192.168.1.3 21:12 2.00s 0.04s 0.04s -bash
私のDebian Linuxシステムのwho
マンページには、ホスト名ではなくIPを表示する--ips
オプションがあることが示されています。
who
は私が使用するコマンドですが、100%信頼できるものではありません。結果の名前は、IPアドレスのPTRレコードからのものです。名前に一致するAレコードがある場合とない場合があります。
Root権限があれば、ps
とnetstat
のデータを統合できます。それ以外の場合は、どの接続がどのプロセスに属しているかを知識に基づいて推測することができます。
使用できる他のツールがありますが、UNIX/Linuxフレーバー全体で一貫したパラメーターと出力を持つプログラムは見つかりませんでした。
一部の古いUNIX(つまりSCO OpenServer Release 5.0.7))では、w
コマンドが適切なスタートですが、デフォルトではIPアドレスが出力されません。コマンド引数は、必須。man
ページから:
-x
Print out the hostname. This option cannot be used with
the -u option.
-X
Print out full hostnames. This option implies the -x
option. Hostnames printed by the -x option are truncated
to fit into a field; hostnames printed by the -X option
are not truncated.
例えば:
$ w
2:39pm up 2 days, 11:07, 1 user, load average: 0.00, 0.00, 0.00
User Tty Login@ Idle JCPU PCPU What
minime ttyp0 2:31pm - - - w
$ w -x
2:39pm up 2 days, 11:07, 1 user, load average: 0.00, 0.00, 0.00
User Tty Login@ Idle JCPU PCPU Hostname What
minime ttyp0 2:31pm - - - 192.168.36.188 w -x