web-dev-qa-db-fra.com

Ubuntu peut-il interroger le modem ou le routeur pour connaître l'adresse IP fournie par son fournisseur d'accès et le consigner?

Je suis connecté à Internet via un modem ADSL, mon FAI me donne une adresse IP, Ubuntu consigne-t-il cette adresse IP quelque part?

Comment configurer Ubuntu pour enregistrer l'adresse IP?

2
Alessandro Jacopson

Ou vous pouvez le faire vous-même, en utilisant curl pour accéder à un certain nombre de services en ligne qui répondent avec votre adresse IP publique.

Certains des services:

Exemple:

curl icanhazip.com sera envoyé au terminal

curl icanhazip.com > my_public_ip.txt crée ou remplace un fichier txt nommé my_public_ip.txt avec l'IP.

curl icanhazip.com >> my_public_ip.txt ajoutera l'adresse IP publique à chaque exécution de la commande.

Vous pouvez créer un petit script pour exécuter la vérification et même l'ajouter en tant que tâche cron à exécuter à chaque fois que la machine redémarre ou à certains intervalles.

La version la plus simple pourrait être:

#!/usr/bin/env bash

curl icanhazip.com >> my_public_ip.txt
2
Stef K

Enregistrer l'adresse de votre PC

Si votre modem est purement un modem et que votre PC se connecte directement à votre fournisseur de services Internet, l'adresse IP obtenue sera écrite dans les journaux du système dans /var/log/syslog. Si vous souhaitez que ces informations soient plus faciles à extraire, vous pouvez vous connecter dans un fichier séparé.

Si votre fournisseur de services Internet fournit une connexion PPP, les scripts in /etc/ppp/ip-up.d sont exécutés à chaque connexion (ou /etc/ppp/ipv6-up.d si vous avez une connectivité IPv6). Ajoutez un script appelé /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

Si votre FAI fournit une connexion Ethernet, les scripts in /etc/network/if-up.d sont exécutés à chaque connexion. Ajoutez un script appelé /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

Obtenir votre adresse Internet

L'adresse de votre PC sur le réseau local peut ne pas être l'adresse avec laquelle vous accédez à Internet, à cause de NAT . NAT permet à de nombreuses machines d'un réseau d'établir des connexions sortantes à partir d'une seule adresse IP. De nombreux modems ADSL sont en fait des routeurs et des appareils NAT en plus d’être un modem. Si votre modem offre le wifi, il s’agit presque certainement d’une appliance NAT. Si votre modem autorise la connexion de plusieurs ordinateurs (sans que l'un des ordinateurs ne soit configuré pour le partage de connexion), il s'agit d'un appareil NAT.

Si votre PC est derrière un NAT, la seule façon de savoir quelle est son adresse Internet est de demander à un ordinateur distant. Il existe de nombreux sites Web accessibles au public qui fournissent ces informations. Vous pouvez récupérer ces informations à tout moment, mais vous ne saurez pas quand elles changeront. La plupart des fournisseurs de services Internet modifieront votre adresse IP de temps à autre, car cela facilite l'équilibrage de la charge de leurs équipements. Cela se produit généralement une fois par jour ou tous les deux ou trois jours.

Si vous souhaitez enregistrer votre adresse IP à intervalles réguliers, vous pouvez créer un travail cron . Notez que si votre adresse change plusieurs fois entre les exécutions du travail, vous n'avez aucun moyen de le savoir. Dans votre crontab:

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

Le script ~/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

Selon le modèle de votre routeur, il se peut qu’il enregistre les adresses IP obtenues et qu’il existe un moyen de lui faire envoyer ces informations sur votre PC. Cela dépend beaucoup du modèle de routeur, je ne peux donner aucun conseil général.

3
Gilles