Unix:如何查找我登录的以太网接口的名称

Unix:如何查找我登录的以太网接口的名称

我们有多宿主服务器。为了简化操作,我想知道我登录的接口的 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%% *}

相关内容