2011-11-11 12 views
0

ログインしたリモートユーザーのIPアドレスを返すスクリプトを作成できました。現在ログインしている端末のIPを見つける方法は?

nslookup `pinky | sed -n '2,2p' | awk '{ print $5}'` | tail -n2 | grep Address | awk '{ print $2}' 

しかし、解析が多すぎるため、すべての条件で完全に機能するとは確信できません。

良いアプローチがありますか?

答えて

0

は、ここではスクリプトです。 2,2pは2行目を分離するための単なる演算子です。そして、はい、対応する端末を識別するためにスクリプトを修正する必要があります。
+0

grepを削除し、 'awk '/ Address/{print $ 2}''と書いてください。 – Jens

2

それは短いです

ip="${SSH_CLIENT/ */}" 

を試してみてください。

一方、正確には2,2pの意味がわかりません。どのリモートユーザーが必要ですか?最初のリスト?残念ながら

#!/bin/bash 
TERM_CLI_NAME=`who am i | awk '{print $5}'|sed 's/.\(.*\)./\1/'` 
nslookup $TERM_CLI_NAME | tail -n2 | grep Address | awk '{ print $2}' 
+0

、ルート(返された空の文字列)として実行したときに動作しませんでした:ルートの下で働いて同様のソリューションに興味のある人のために –

+0

はい、それは私の質問だった - なぜ2番目の行ですか?あなたはどんなユーザーを探していますか?私があなたに与えたコマンドは、現在接続されているsshユーザのリモートIPにipを設定するべきですが、今はあなたが探しているものではないかと思います。 –

+0

私はrootになり、現在のユーザを欲しがっています(私の究極の目標は、私がコミットしたアクションを除いてログを表示しています) –

関連する問題