同じリモートコンピュータにログインしている他のユーザーのIPアドレスをどのように知ることができますか?

同じリモートコンピュータにログインしている他のユーザーのIPアドレスをどのように知ることができますか?

次のコマンドを使用して、リモートコンピュータ上の他のユーザーの名前を表示できます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

関連情報