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

Как лучше всего периодически получать IP-адрес внешнего интернет-шлюза?

У меня есть сервер OS X за экстримом аэропорта, обслуживающий услуги через открытые порты в аэропорту.

Сервер имеет локальный адрес 10.0.x.x, всегда один и тот же. Экстремальный аэропорт получает свой внешний IP-адрес через PPPoE, и иногда ... раз в неделю он меняется.

По соображениям безопасности НАМ ДЕЙСТВИТЕЛЬНО нравится такое поведение. Но мне нужен способ узнать внешний IP-адрес на тот случай, если мне нужно подключиться и что-то сделать с сервером, находясь снаружи.

Что я могу сделать?

Получите услугу динамического DNS. Есть много таких услуг, доступных в разных местах в Интернете ...

Сайт, который я использую именно для такого поведения, - ifconfig.me. Это может возвращать данные в любом формате, который вы можете использовать. Например. В сценарии bash, где вам нужен только ip:

IP=`curl http://ifconfig.me/ip`

Конечно, вы захотите проверить код возврата, если что-то пойдет не так. Тем не менее, он кажется довольно надежным для написания сценариев.

  1. Откройте браузер.
  2. Посетите веб-сайт, на котором указан ваш IP-адрес.
  3. Скрипт в периодическую работу для достижения наилучших результатов.

Или купите статический IP-адрес, но если вам просто нужно знать время от времени / на всякий случай, вы бы поступили именно так. И убедитесь, что вы настроили IPv6 / NAT / переадресацию портов, чтобы соединение действительно шло к серверу, когда оно попадает на шлюз.

Процитирую @MichaelHampton:

Вы уже развернули IPv6? Мне надоело это дерьмо NAT.

Вы можете настроить задание cron для выполнения следующего скрипта:

#!/bin/bash

TIME='date' $TIME
IP='curl http://ifconfig.me/ip' $IP
echo $TIME - $IP >> ~/iplogging.txt

Это выведет временную метку и IP-адрес во время запуска скрипта и сохранит его в ~ / iplogging.txt.