私はコンピュータにあり、X11転送を使用してコンピュータにsshを使用しているとしますlocal
。 SSHセッションで実行されているプログラムが表示されていることを知らせるremote
方法はありますか?理想的には、Xサーバーを実行しているコンピュータのホスト名を知りたいです。私の目標は、プログラムが表示されるコンピュータによって異なる動作を引き起こすことです。remote
local
ベストアンサー1
Xサーバーはホスト名をクライアントに報告しないようです。クライアントは接続するホスト名を知る必要がありますが、SSH経由で接続する必要があります。つまり、localhost
転送にSSHを使用します。
OpenSSH サーバーはSSH_CLIENT
環境変数を設定します。ここでは、クライアントのIPアドレスを読み取ることができます。これはサーバーが見ているアドレスなので、同じNATの背後にあるコンピュータを区別することはできません。これは、他に何も起こらないという前提の下で、Xサーバーのアドレスです(SSH転送、クライアントのリモートXサーバー...)。 Emacsを実行するためにフレームワークを生成するためにemacsclientを使用した場合ではなく、EmacsがそのSSH接続で開始された場合にのみEmacsから環境変数を取得できることに注意してください。
x-server-XXX
Emacsの機能を使用して、x-display-XXX
モニターの特定の属性(サイズ、色深度、Xベンダーなど)を取得できますdisplay-XXX
。