次のコマンドを使用して、リモートコンピュータ上の他のユーザーの名前を表示できますwho
。また、このユーザーのIPアドレスを知りたいです...
/sbin/ifconfing
コマンドを使用しようとするとnetstat
肯定的な結果が得られません...
LinuxおよびUnixと互換性のあるこのソリューションが必要です。
このユーティリティのコマンドはありますか?スクリプトを作成するか、パイプラインを使用する必要がありますか?
答え1
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
答え2
私のDebian Linuxシステムのマンページには、ホスト名の代わりにIPを表示するオプションがwho
あります。--ips
答え3
who
私が使用するコマンドですが、100%信頼できません。生成された名前はIPアドレスのPTRレコードから来ます。名前には一致するAレコードが含まれている場合とない場合があります。
ルートアクセス権を持っているとps
のデータを統合することができます。netstat
それ以外の場合は、どの接続がどのプロセスに属しているかを推測するだけです。
他にも利用可能なツールがありますが、UNIX/Linuxスタイルの一貫した引数と出力を持つプログラムを見つけることができませんでした。
答え4
一部の以前のUNIX(SCO OpenServerリリース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