我们有多宿主服务器。为了简化操作,我想知道我登录的接口的 DNS。(例如设置 PS1,以便可以在 scp 命令中使用)
我对这些问题的解决方案似乎相当复杂。=> 有没有更简单、更便携的方法?
ORIGIN_NAME=`who -m | cut -d\( -f2 | cut -d\) -f1`
ORIGIN_IP=`getent hosts $ORIGIN_NAME | awk '{ print $1; }'`
INTERFACE_NAME=`ip route get $ORIGIN_IP | grep dev | awk '{ print substr($0,index($0,"dev")+4,4); }'`
INTERFACE_IP=`ifconfig -a $INTERFACE_NAME | grep inet | awk ' { print $2; }' | cut -d: -f2`
getent hosts $INTERFACE_IP | awk '{ print $NF; }'
答案1
@Mark Plotnick 有最简单的一个!只需使用echo $SSH_CONNECTION
它,它就会输出类似客户端 IP、客户端端口、服务器 IP、服务器端口的内容,第一个是您的 IP(您从哪里登录),第二个是您连接到的 IP 或主机。这个应该归功于 Mark。
答案2
ip route get ${SSH_CONNECTION%% *}