2011-11-11 27 views
0

我能寫一個腳本返回登錄的遠程用戶的IP地址。它是這樣的:如何查找當前登錄的終端的IP?

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

然而,由於涉及到的重解析,我不能肯定它會在所有情況下完美運行。

有沒有更好的方法?

回答

0

對於那些有興趣在類似的解決方案下工作的緣故,這裏的腳本:

#!/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

消除grep並寫入'awk'/ Address/{print $ 2}''。 – Jens

2

嘗試

ip="${SSH_CLIENT/ */}" 

它的短。

另一方面,我不確定你的意思是什麼2,2p。你想要哪個遠程用戶?名單上的第一個?

+0

不幸的是,當作爲根(返回空字符串)跑了,沒有工作。 2,2p只是一個sed操作符,旨在隔離第二行。是的腳本需要修改,以確定相應的終端。 –

+0

是的,那是我的問題是 - 爲什麼第二行?你在找什麼用戶?我給你的命令應該將ip設置爲當前連接的ssh用戶的遠程IP地址,但我不確定它現在是你想要的。 –

+0

我su到根目錄,想要當前用戶(我的最終目標是顯示日誌,不包括我提交的操作) –

相關問題