【问题标题】:How to get the incoming ssh/telnets clients local IP address from a shell script or C如何从 shell 脚本或 C 获取传入的 ssh/telnets 客户端本地 IP 地址
【发布时间】:2011-01-26 13:34:30
【问题描述】:

我需要一种方法来获取传入 telnet 或 ssh 的本地(不是 WAN)地址 使用 shell 脚本或 C 的会话。

【问题讨论】:

    标签: c scripting ssh client ip-address


    【解决方案1】:

    这可以通过多种方式完成,具体取决于您使用的 OS/ssh 守护程序/telnet 守护程序。这里有两种方法:

    • OpenSSH 在环境变量SSH_CLIENT 中发布客户端IP(和端口)。在 bash 中,您可以使用 ${SSH_CLIENT%% *} 提取 IP。
    • 使用utmpx 数据库(与who 使用相同),如下所述:whoamIP - Find hostname/IP of current remote shell user,或使用last,如下所示:last -i1 $USER | awk '{print $3;exit}'

    【讨论】:

    • 最后 -i1 $USER | awk '{print $3;exit}' 总是不会给出正确的结果,因为它只是返回具有相同用户名的最后登录用户。例如。如果我从不同的IP登录机器并同时执行此命令,所有结果都不会正确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 2022-01-22
    • 2012-06-06
    • 2012-03-14
    • 2012-02-16
    相关资源
    最近更新 更多