201 votes

trouver l'adresse ip du client dans une session ssh

J'ai un script qui doit être exécuté par une personne qui se connecte au serveur en ssh.

Est-il un moyen de savoir automatiquement ce que la propriété intellectuelle est l'utilisateur se connectant à partir d'.

Bien sûr, je pourrais demander à l'utilisateur (c'est un outil pour les programmeurs, donc pas de problème avec ça), mais ce serait mieux si je viens de découvrir.

314voto

nolim1t Points 1159

Vérifier si une variable d'environnement appelée:

SSH_CLIENT

OU

SSH_CONNECTION

(ou toutes les autres variables d'environnement) qui est défini lorsque l'utilisateur se connecte. Puis traiter à l'aide de la connexion de l'utilisateur du script.

118voto

vncprado Points 425

Vous pouvez utiliser la commande:

server:~# pinky

qui vous donnera somehting comme ceci:

Login      Name                 TTY    Idle   When                 Where 

root       root                 pts/0         2009-06-15 13:41     192.168.1.133

37voto

AlexP Points 101

Essayez ce qui suit pour obtenir l'ip:

who am i|awk '{ print $5}'

5voto

Spindrift Points 41
who am i | awk '{print $5}' | sed 's/[()]//g' | cut -f1 -d "." | sed 's/-/./g'


export DISPLAY=`who am i | awk '{print $5}' | sed 's/[()]//g' | cut -f1 -d "." | sed 's/-/./g'`:0.0

Je l'utilise pour déterminer ma variable d'AFFICHAGE pour la session lors de la connexion via ssh et besoin d'afficher à distance X.

2voto

vineetv2821993 Points 221

Vous pouvez l'obtenir par programme via ssh (bibliothèque dehttps://code.google.com/p/sshxcute)

public static String getIpAddress() throws TaskExecFailException{
    ConnBean cb = new ConnBean(host, username, password);
    SSHExec ssh = SSHExec.getInstance(cb);
    ssh.connect();
    CustomTask sampleTask = new ExecCommand("echo \"${SSH_CLIENT%% *}\"");
    String Result = ssh.exec(sampleTask).sysout;
    ssh.disconnect();   
    return Result;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X