Может ли Ubuntu запросить у модема или маршрутизатора IP-адрес, указанный его провайдером, и зарегистрировать его? - proUbuntu
2 голосов
/ 25 августа 2013

Я подключен к Интернету через модем ADSL, мой интернет-провайдер дает мне IP-адрес, Ubuntu регистрирует этот IP-адрес где-нибудь?

Как настроить Ubuntu для регистрации IP-адреса?

Ответы [ 2 ]

3 голосов
/ 26 августа 2013

Регистрация адреса вашего ПК

Если ваш модем является чисто модемом и ваш компьютер подключается к вашему провайдеру напрямую, то полученный IP-адрес будет записан в системные журналы в /var/log/syslog. Если вы хотите, чтобы эту информацию было легче извлечь, вы можете войти в отдельный файл.

Если ваш провайдер предоставляет PPP-соединение, сценарии в /etc/ppp/ip-up.d выполняются при каждом подключении (или /etc/ppp/ipv6-up.d, если у вас есть подключение IPv6). Добавьте скрипт с именем /etc/ppp/ip-up.d/zzz_log_ip_address:

#!/bin/sh
echo "$PPP_LOCAL $(TZ=UTC date '+%Y-%m-%d %H-%M-%S')" >>/var/log/ip-addresses

Если ваш провайдер предоставляет соединение Ethernet, тогда сценарии in /etc/network/if-up.d выполняются при каждом подключении. Добавьте скрипт с именем /etc/network/if-up.d/zzz_log_ip_address:

#!/bin/sh
if [ "$IFACE" = "lo" ]; then exit; fi # skip loopback interface
address=$(ip addr show eth1 | awk '$1 == "inet" {sub("/.*", "", $2); print $2}')
echo "$address $(TZ=UTC date '+%Y-%m-%d %H-%M-%S')" >>/var/log/ip-addresses

Получение вашего интернет-адреса

Адрес вашего ПК в локальной сети может не совпадать с адресом, с которым вы подключаетесь к Интернету, из-за NAT . NAT позволяет многим машинам в сети устанавливать исходящие соединения с одного IP-адреса. Многие ADSL-модемы фактически являются маршрутизаторами и устройствами NAT, а не модемом. Если ваш модем предлагает Wi-Fi, это почти наверняка устройство NAT. Если ваш модем позволяет подключаться нескольким компьютерам (при этом один из компьютеров не настроен для совместного использования подключений), это устройство NAT.

Если ваш компьютер находится за NAT, то единственный способ узнать его интернет-адрес - это спросить удаленную машину. Есть много общедоступных сайтов , которые предоставляют эту информацию. Вы можете получить эту информацию в любое время, но вы не будете знать, когда она изменится. Большинство интернет-провайдеров время от времени изменяют ваш IP-адрес, поскольку это облегчает балансировку нагрузки в их оборудовании. Обычно это происходит один раз в день или раз в несколько дней.

Если вы хотите регулярно регистрировать свой IP-адрес, вы можете сделать cron job . Обратите внимание, что если ваш адрес меняется несколько раз между запусками задания, у вас нет возможности узнать. В вашем crontab:

0 * * * * $HOME/bin/log-ip-address

Сценарий ~/bin/log-ip-address:

#!/bin/sh
log_file=~/.ip-addresses.log
address=$(wget -q -O - http://ipecho.net/plain)
previous=$(awk 'END {print $1}' <"$log_file") 2>/dev/null
if [ "$address" != "$previous" ]; then
  echo "$address $(TZ=UTC date '+%Y-%m-%d %H-%M-%S')" >>"$log_file"
fi

В зависимости от модели вашего маршрутизатора, он может регистрировать IP-адреса, которые он получает, и может быть способ заставить его отправить эту информацию на ваш ПК. Это очень зависит от модели маршрутизатора, я не могу дать общий совет.

2 голосов
/ 25 августа 2013

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

Некоторые из услуг:

Пример:

curl icanhazip.com выведет на клемму

curl icanhazip.com > my_public_ip.txt создаст или переопределит текстовый файл с именем my_public_ip.txt с IP.

curl icanhazip.com >> my_public_ip.txt будет добавлять общедоступный IP-адрес при каждом запуске команды.

Вы можете создать небольшой скрипт для запуска проверки и даже добавить его в качестве задания cron, которое будет запускаться, скажем, каждый раз при перезагрузке компьютера или через определенные промежутки времени.

Самая простая версия может быть:

#!/usr/bin/env bash

curl icanhazip.com >> my_public_ip.txt
...