Как узнать ip динамического хоста

Иногда требуется подключение к компьютеру с adsl-инетом. Как известно, ip там динамический и меняется раз в сутки.
Неплохое, но не самое надёжное решение - установить adsl-роутер, который будет авторизоваться на dyndns.com.
Таким образом, вы получите бесплатный домен вида имя.dyndns.com (ну, или ещё какой-нибудь, поддерживаемый роутером).
По этому домену можно подключаться (предварительно прокинув нужный порт на роутере, разумеется).

Минусы данного решения:
- некоторые роутеры не всегда отрабатывают авторизацию, приходится пинать его локально
- сервисы иногда сами не отдают то, что нужно

Любой такой баг приводит к тотальной недоступности компьютеров за роутером.
Расскажу об элементарной подстраховке, которая поможет не потерять хост из-за погоды и настроения сторонних дядь.

Рецепт прост до безобразия. Берём стабильно работающий сервак с внешним ip на линуксе (в наше время он должен быть у любого, кто хоть что-то смыслящего в компьютерах человека - уж 100 рублей в месяц за vds отдать несложно).

На динамическом хосте, адрес которого требуется узнать запускаем пинг по какому-нибудь экзотическому порту.

tcping -t сервер порт

~# tcping -t klalofu.ru 65000

** Pinging continuously. Press control-c to stop **

Probing 81.177.32.238:65000/tcp - Socket is not connected (10057) - time=2001.92
7ms
Probing 81.177.32.238:65000/tcp - Socket is not connected (10057) - time=2001.03
5ms

Лучше взять порт из дальних окраин, типа 65000.
Если что, утилита tcping существует и для windows (гуглить tcping windows). Правда, на одной из машин она как-то удивительным образом закрывала винде 80-й порт.

Ну, а на сервере, когда нам понадобится узнать ip хоста, набираем

root@vz2631:~# nc -l -p 65000 -v
listening on [any] 65000 ...
connect to [81.177.32.238] from ppp91-122-29-11.pppoe.avangarddsl.ru [91.122.29.11] 4885

Всё, осталось только запихать пингер в автозагрузку, и можно будет успокоиться - при исправной аппаратуре и присутствии инета удалённый хост никуда не денется.