2010-03-11 4 views

Répondre

5

Cela peut être fait de plusieurs façons, selon le démon OS/ssh/telnet que vous utilisez. Voici deux approches:

  • OpenSSH publie les clients ip (et ports) dans la variable d'environnement SSH_CLIENT. En bash, vous pouvez extraire l'adresse IP avec ${SSH_CLIENT%% *}.
  • Utilisez la base de données utmpx (le même que who utilisations), comme cela est expliqué ici: whoamIP - Find hostname/IP of current remote shell user, ou en utilisant last comme ceci: last -i1 $USER | awk '{print $3;exit}'
+0

dernière -i1 $ USER | awk '{print $ 3; exit}' ne donne pas toujours le résultat correct car il renvoie simplement le dernier utilisateur connecté avec le même nom d'utilisateur. par exemple. Si je me connecte à la machine à partir d'adresses IP différentes et exécute cette commande en même temps, tous les résultats ne seront pas corrects. – chandank

Questions connexes