O Ubuntu pode consultar o modem ou roteador para obter o endereço IP fornecido pelo seu provedor e registrar isso?

2

Estou conectado à Internet através de um modem ADSL, meu ISP me dá um endereço IP, o Ubuntu registra esse endereço IP em algum lugar?

Como posso configurar o Ubuntu para registrar o endereço IP?

    
por Alessandro Jacopson 25.08.2013 / 13:00

2 respostas

2

Ou você mesmo pode fazer isso usando curl para acessar vários serviços on-line que respondem com seu endereço IP público.

Alguns dos serviços:

Exemplo:

curl icanhazip.com será enviado para o terminal

curl icanhazip.com > my_public_ip.txt criará ou substituirá um arquivo txt chamado my_public_ip.txt pelo IP.

curl icanhazip.com >> my_public_ip.txt anexará o IP público toda vez que o comando for executado.

Você pode criar um pequeno script para executar a verificação e até mesmo adicioná-lo como uma tarefa cron para ser executada toda vez que a máquina for reinicializada ou em alguns intervalos.

A versão mais simples poderia ser:

#!/usr/bin/env bash

curl icanhazip.com >> my_public_ip.txt
    
por Stef K 25.08.2013 / 14:27
3

Registrando o endereço do seu PC

Se o seu modem é puramente um modem e seu PC se conecta diretamente ao seu provedor, então o endereço IP que ele obtém será gravado nos logs do sistema em /var/log/syslog . Se você quiser que essa informação seja mais fácil de extrair, você pode registrar em um arquivo separado.

Se o seu ISP fornecer uma conexão PPP, os scripts em /etc/ppp/ip-up.d são executados sempre que você se conecta (ou /etc/ppp/ipv6-up.d se você tiver conectividade IPv6). Adicione um script chamado /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

Se o seu ISP fornecer uma conexão Ethernet, os scripts em /etc/network/if-up.d são executados a cada vez que você se conecta. Adicione um script chamado /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 ' == "inet" {sub("/.*", "", ); print }')
echo "$address $(TZ=UTC date '+%Y-%m-%d %H-%M-%S')" >>/var/log/ip-addresses

Obtendo seu endereço de Internet

O endereço do seu PC na rede local pode não ser o endereço com o qual você acessa a Internet, devido a NAT . O NAT permite que muitas máquinas em uma rede façam conexões de saída a partir de um único endereço IP. Muitos modems ADSL são na verdade roteadores e dispositivos NAT, além de serem um modem. Se o seu modem oferece wi-fi, é quase certo que seja um dispositivo NAT. Se o seu modem permitir que vários computadores se conectem (sem que um dos computadores esteja configurado para compartilhamento de conexão), é um dispositivo NAT.

Se o seu PC estiver atrás de um NAT, a única maneira de saber qual é o endereço da Internet é perguntar a uma máquina remota. Existem muitos sites disponíveis publicamente que fornecem essa informação. Você pode recuperar essas informações a qualquer momento, mas não saberá quando elas serão alteradas. A maioria dos ISPs mudará seu endereço IP de tempos em tempos, porque isso facilita o balanceamento de carga em seus equipamentos. Isso geralmente acontece uma vez por dia ou uma vez a cada poucos dias.

Se você quiser registrar seu endereço IP em intervalos regulares, você pode fazer um cron job . Observe que, se o seu endereço mudar várias vezes entre as execuções do trabalho, você não terá como saber. No seu crontab:

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

O script ~/bin/log-ip-address :

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

Dependendo do modelo do seu roteador, ele pode estar registrando os endereços IP que ele obtém e pode haver uma maneira de fazer com que ele envie essas informações para o seu PC. Isso é muito dependente do modelo do roteador, não posso dar nenhum conselho geral.

    
por Gilles 26.08.2013 / 02:10