Può Ubuntu interrogare il modem o il router per l'indirizzo IP fornito dal suo ISP e registrarlo?

2

Sono connesso a Internet tramite un modem ADSL, il mio ISP mi fornisce un indirizzo IP, Ubuntu registra questo indirizzo IP da qualche parte?

Come posso configurare Ubuntu per registrare l'indirizzo IP?

    
posta Alessandro Jacopson 25.08.2013 - 13:00

2 risposte

2

Oppure puoi farlo da solo, utilizzando curl per accedere a una serie di servizi online che rispondono con il tuo indirizzo IP pubblico.

Alcuni servizi:

Esempio:

curl icanhazip.com verrà emesso sul terminale

curl icanhazip.com > my_public_ip.txt creerà o sostituirà un file txt denominato my_public_ip.txt con l'IP.

curl icanhazip.com >> my_public_ip.txt aggiungerà l'IP pubblico ogni volta che viene eseguito il comando.

Potresti creare un piccolo script per eseguire il controllo e persino aggiungerlo come cron job da eseguire ogni volta che la macchina si riavvia o ad intervalli.

La versione più semplice potrebbe essere:

#!/usr/bin/env bash

curl icanhazip.com >> my_public_ip.txt
    
risposta data Stef K 25.08.2013 - 14:27
3

Registrazione dell'indirizzo del PC

Se il tuo modem è puramente un modem e il tuo PC si connette direttamente al tuo ISP, allora l'indirizzo IP che otterrà sarà scritto nei log di sistema in /var/log/syslog . Se desideri che queste informazioni siano più facili da estrarre, puoi accedere a un file separato.

Se il tuo ISP fornisce una connessione PPP, allora gli script in /etc/ppp/ip-up.d vengono eseguiti ogni volta che ci si connette (o /etc/ppp/ipv6-up.d se si ha la connettività IPv6). Aggiungi uno script chiamato /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 il tuo ISP fornisce una connessione Ethernet, quindi gli script in /etc/network/if-up.d vengono eseguiti ogni volta che ci si connette. Aggiungi uno script chiamato /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

Recupero dell'indirizzo Internet

L'indirizzo del tuo PC sulla rete locale potrebbe non essere l'indirizzo con cui accedi a Internet, a causa di NAT . NAT consente a molte macchine su una rete di effettuare connessioni in uscita da un singolo indirizzo IP. Molti modem ADSL sono in effetti router e dispositivi NAT oltre a essere un modem. Se il tuo modem offre la connessione wifi, è quasi certamente un dispositivo NAT. Se il tuo modem consente a più computer di connettersi (senza che uno dei computer sia configurato per la condivisione delle connessioni), è un dispositivo NAT.

Se il tuo PC si trova dietro un NAT, l'unico modo in cui può sapere qual è il suo indirizzo Internet è chiedere a un computer remoto. Ci sono molti siti web pubblicamente disponibili che forniscono queste informazioni. Puoi recuperare queste informazioni in qualsiasi momento, ma non saprai quando cambierà. La maggior parte degli ISP modificherà il tuo indirizzo IP di volta in volta perché questo facilita il bilanciamento del carico nelle loro apparecchiature. Questo di solito accade una volta al giorno o una volta ogni pochi giorni.

Se desideri registrare il tuo indirizzo IP a intervalli regolari, puoi creare un processo cron . Nota che se il tuo indirizzo cambia più volte tra una serie e l'altra del lavoro, non hai modo di sapere. Nel tuo crontab:

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

Lo 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

A seconda del modello di router, potrebbe essere necessario registrare gli indirizzi IP che ottiene, e potrebbe esserci un modo per inviarlo al PC. Questo dipende molto dal modello del router, non posso dare alcun consiglio generale.

    
risposta data Gilles 26.08.2013 - 02:10

Leggi altre domande sui tag