Назад | Перейти на главную страницу

Bash-скрипт: получить настоящий удаленный (mosh + ssh) IP

я использую Mosh + Экран GNU для большей части моей удаленной работы. Я также переезжаю на место в течение недели (с разными IP-адресами), и эта настройка позволяет всем работать как шарм. У меня есть одно желание.

Я хотел бы, чтобы скорость пинга от сервера к клиенту была значением в строке состояния экрана.

Для этого я написал простой скрипт, который делает это:

`ping -q -c 1 `who am i | egrep -o "\([^\)]+\)" | egrep -o "[0-9-]+{4}" | sed "s/\-/\./g"` | grep 'rtt min' | cut -d / -f 5 | cut -f 1 -d .

Проблема в том, что когда я перехожу в другое место, мош снова подключается, но who am i команда больше не возвращает мой настоящий IP.

Мой вопрос:

Есть ли надежная команда, которая вернет IP-адрес клиента, подключенного в настоящее время с помощью mosh / ssh?


Обновить:

Кажется, это работает:

ping -q -c 1 `last | grep $USER | grep "still logged in" | egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -n 1` | grep 'rtt min' | cut -d / -f 5 | cut -f 1 -d .

Придется тестировать с большим количеством мест.

Я нашел, что это работает:

ping -q -c 1 `last | grep $USER | grep "still logged in" | egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -n 1` | grep 'rtt min' | cut -d / -f 5 | cut -f 1 -d .

Последняя команда показывает ваш «текущий» удаленный IP.