Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pppoe notification changement IP

11 réponses
Avatar
Jean-Marc Vanel
Sur l'interface pppoe (Point To Point Over Ethernet) avec mon modem ADSL,
l'adresse IP change parfois, à cause de mon fournisseur d'accès Internet
(wanadoo :-( ).

Je voudrais pouvoir appeler à ce moment un script à moi.
Comment?

10 réponses

1 2
Avatar
Rakotomandimby
Jean-Marc Vanel wrote:

Je voudrais pouvoir appeler à ce moment un script à moi.
Comment?


Tu peux connaitre ton adresse IP avec la commande "ifconfig"
En utilisant sed et/ou awk tu peux isoler ton adresse IP
Tu peux stocker ton adresse actuelle dans un fichier
puis faire un script qui toutes les 5 min ( avec cron ) compare l'adresse
actuelle avec celle dans le fichier .
Faire ton sscript en focntion de la detection du changement .

Le plus dur sera d'apprendre awk et sed mais je te garanti que tu ne perdra
rien, parceque tu verra que sed et awk t'ouvriront des horizons
nouveaux ... :-)
--
Rakotomandimby Mihamina Andrianifaharana
Tel : +33 2 38 76 43 65
http://stko.dyndns.info/site_principal/Members/mihamina

Avatar
Tibi
Rakotomandimby wrote:
Le plus dur sera d'apprendre awk et sed mais je te garanti que tu ne perdra
rien, parceque tu verra que sed et awk t'ouvriront des horizons
nouveaux ... :-)


Et c'est toi qui conseille ça ?
En tant que contributeur à fcl.python tu pourrais conseiller Python tout
de même :)

Avatar
Sébastien Cottalorda
Jean-Marc Vanel wrote:

Sur l'interface pppoe (Point To Point Over Ethernet) avec mon modem ADSL,
l'adresse IP change parfois, à cause de mon fournisseur d'accès Internet
(wanadoo :-( ).

Je voudrais pouvoir appeler à ce moment un script à moi.
Comment?
Salut


ifconfig ppp0 | grep "inet adr" | sed -e 's/^.*inet adr://' -e 's/ .*$//'

t'extracte l'adresse IP de ton interfac ppp0
Stocke la dans un fichier.
5 minutes après, compare là avec la nouvelle adresse fraichement extraite
(La comparaison pourra être faite avec un banal grep)
Si cela a changé, lance ton script
Sinon => NOP

Sébastien
--
[ retirer NOSPAM pour répondre directement
remove NOSPAM to reply directly ]

Avatar
Rakotomandimby
Tibi wrote:

Et c'est toi qui conseille ça ?
En tant que contributeur à fcl.python tu pourrais conseiller Python tout
de même :)


je lui ai juste conseillé de faire comme j'avais fait quand j'ai eu a faire
ça. :-)
--
Rakotomandimby Mihamina Andrianifaharana
Tel : +33 2 38 76 43 65
http://stko.dyndns.info/site_principal/Members/mihamina

Avatar
Samuel Colin
Dans l'article <c1euqs$fd7$,
Jean-Marc Vanel a tapoté :
Sur l'interface pppoe (Point To Point Over Ethernet) avec mon modem ADSL,
l'adresse IP change parfois, à cause de mon fournisseur d'accès Internet
(wanadoo :-( ).

Je voudrais pouvoir appeler à ce moment un script à moi.
Comment?


Certaines distributions proposent des répertoires dans lesquels placer des
scripts qui seront appelés à certains moments.
Par exemple, pour ppp, sous Debian, il y a les répertoires:
/etc/ppp/ip-up.d/
Qui contient tous les scripts appelés dans l'ordre lorsque l'interface ppp
est mise en fonction
/etc/ppp/ip-down.d/
La même chose, mais quand l'interface est désactivée.

Donc tu peux mettre ton script dans ces répertoires-là.

En revanche, si ton script est un script de reconnexion, vérifie d'abord que
tu as l'option persist dans tes réglages pppoe, et (à cause d'un bug de ppp
qui a trait au noyau) éventuellement un script appelé par ton cron qui
vérifie que l'interface ppp fonctionne toujours.

--
Resultat, je me retrouve avec un disque dur bien plein, et au demarrage la
liste des demons ... interminable (et beaucoup ne me servent pas).
retourne sous Windoze. Unix est un OS pour mec couillus, pas pour des gonzesses

-+- TP in GFA : "Unix, pour des performances accrues" -+-

Avatar
Erwann ABALEA
Bonjour,

On Tue, 24 Feb 2004, Jean-Marc Vanel wrote:

Sur l'interface pppoe (Point To Point Over Ethernet) avec mon modem ADSL,
l'adresse IP change parfois, à cause de mon fournisseur d'accès Internet
(wanadoo :-( ).


C'est le comportement normal.

Je voudrais pouvoir appeler à ce moment un script à moi.
Comment?


Le démon PPPoE appelle à son tour le démon pppd, qui a déjà prévu le coup.
Un man pppd pour comprendre tout ça.

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
Pour les reponses privees, j'aurais pu ajouter mon adresse dans
un reply block crypte avec pgp et demander de le poster
à
-+- A in GNU - En revanche, me présenter c'est un peu dur. -+-

Avatar
Rakotomandimby
Samuel Colin wrote:

En revanche, si ton script est un script de reconnexion, vérifie d'abord
que tu as l'option persist dans tes réglages pppoe, et (à cause d'un bug
de ppp qui a trait au noyau) éventuellement un script appelé par ton cron
qui vérifie que l'interface ppp fonctionne toujours.


Justement au sujet des test de connection, il faut surtout eviter ( du
moins avec wanadoo ) de pinguer une adresse.

Je me rappelle plus comment ni pourquoi , wanadoo deconnecte un client qui
pingue a repetition .

Le seul moyen pour voir si la connection est UP est de voir ce que donne
ifconfig ...
--
Rakotomandimby Mihamina Andrianifaharana
Tel : +33 2 38 76 43 65
http://stko.dyndns.info/site_principal/Members/mihamina

Avatar
Samuel Colin
Dans l'article <c1fb1s$6qj$,
Rakotomandimby a tapoté :
Samuel Colin wrote:

En revanche, si ton script est un script de reconnexion, vérifie d'abord
que tu as l'option persist dans tes réglages pppoe, et (à cause d'un bug
de ppp qui a trait au noyau) éventuellement un script appelé par ton cron
qui vérifie que l'interface ppp fonctionne toujours.


Justement au sujet des test de connection, il faut surtout eviter ( du
moins avec wanadoo ) de pinguer une adresse.

Je me rappelle plus comment ni pourquoi , wanadoo deconnecte un client qui
pingue a repetition .

Le seul moyen pour voir si la connection est UP est de voir ce que donne
ifconfig ...



Il y a trois cas de figures pour les déconnexions avec option persist:
- Déconnexion normale, pppd se reconnecte quelques instants après et tout va
bien.
- Déconnexion erronée, pppd meurt. Il suffit de tester avec "pidof pppd"
pour voir s'il est encore vivant, et réagir en conséquence.
- Déconnexion erronée, mais pppd devient fou et ne meurt pas. Cas peu
fréquent, mais que de nombreuses personnes (dont moi) ont rencontré:
http://www.google.fr/search?q=%22Couldn%27t+create+new+ppp+unit%3A+Inappropriate+ioctl+for+device%22&ie=UTF-8&oe=UTF-8&hl=fr&btnG=Recherche+Google&meta Dans ce cas uniquement, l'utilisation de ifconfig est nécessaire.

--
J'ai beau observé plusieurs groupes, je n'ai pas la réponse! Je crois
que c'est truc qu'on utilise avec le crosspost, non? Par contre,
j'ai remarqué que les crossposts, ça emmerdé pas mal de gens!
-+- M. in GNU : Le follow up to expliqué à ma fille -+-


Avatar
TiChou
Dans l'article news:403b1c41$0$21680$,
Samuel Colin écrivait :

Jean-Marc Vanel a tapoté :
Sur l'interface pppoe (Point To Point Over Ethernet) avec mon modem ADSL,



Attention à la confusion des termes (ici et dans le reste du fil).
On ne parle pas d'interface PPPoE, mais d'interface PPP (Point-To-Point),
qui sous Linux est créée par le daemon pppd. Il n'existe pas de daemon pppoe
mais un client pppoe qui est alors utilisé par le daemon pppd pour établir
une connexion PPP au travers d'un lien Ethernet.

l'adresse IP change parfois, à cause de mon fournisseur d'accès Internet
(wanadoo :-( ).

Je voudrais pouvoir appeler à ce moment un script à moi.
Comment?


Certaines distributions proposent des répertoires dans lesquels placer des
scripts qui seront appelés à certains moments.
Par exemple, pour ppp, sous Debian, il y a les répertoires:
/etc/ppp/ip-up.d/
Qui contient tous les scripts appelés dans l'ordre lorsque l'interface ppp
est mise en fonction
/etc/ppp/ip-down.d/
La même chose, mais quand l'interface est désactivée.


Je me permets d'apporter quelques précisions sur le sujet.
Ce qui est commun à toutes les distributions c'est que pppd lance le script
/etc/ppp/ip-up quand le lien est opérationnel et lance le script
/etc/ppp/ip-down quand le lien est coupé.
Ensuite, sur certaines distributions, Debian comme nous l'a précisé Samuel
Colin ici mais aussi SuSe (de souvenir), les scripts ip-up et ip-down
lancent avec run-parts les scripts présents dans ip-up.d et ip-down.d.

Donc tu peux mettre ton script dans ces répertoires-là.


Où sur les autres distributions comme Gentoo et Slackware placer le script
dans /etc/ppp/ip-up. Sur RedHat dans /etc/ppp/ip-up.local.

Enfin, il faut savoir que les scripts sont lancés avec les variables
d'environnement suivantes :

$1 ou $IFNAME = nom de l'interface (ppp0, ppp1, ...)
$2 ou $DEVICE = le nom du device auquel pppd est rattaché
$3 ou $SPEED = vitesse de la connexion établie
$4 ou $IPLOCAL = adresse IP attribuée par le FAI
$5 ou $IPREMOTE = adresse IP de la passerelle du FAI
$6 = le paramètre introduit par l'option ipparam de pppd
$PPPD_PID = le pid du daemon pppd en cours
$PPPLOGNAME = le nom de l'utilisateur qui a établit la connexion
$LINKNAME = le nom que l'on a donné au lien via l'option linkname de pppd
(très utile pour distinguer deux liens quand on a par exemple deux
connexions ADSL actives sur la même box)

Grâce à ces variables, il est donc très facile de récupérer la nouvelle
adresse IP ($IPLOCAL) et d'autres informations.
Si on souhaite conserver ces informations durant toute la connexion afin de
les utiliser ultérieurement dans un script, on ajoute alors par exemple dans
/etc/ppp/ip-up la ligne suivante :

env > /var/run/ppp-${LINKNAME:+-$LINKNAME}.env

et on retrouvera quelque chose du genre :

# cat /var/run/ppp-easynet.env
PPPD_PIDB78
PPPLOGNAME=root
SPEED8400
IPREMOTE5.114.91.21
IFNAME=ppp0
PWD=/
LINKNAMEêsynet
SHLVL=1
ORIG_UID=0
IPLOCAL!2.11.35.166

et ensuite suffit dans notre script de sourcer le fichier
/var/run/ppp-easynet.env.

--
TiChou


Avatar
Jean-Marc Vanel
Merci à tous.

J'avais cette petite fonction Perl qui renvoie l'IP externe :

sub getIP() {
$line = `/sbin/ifconfig | grep P-t-P`;
$ip_regex = '([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})';
$line =~ m/$ip_regex/;
return $1;
}

et ce qui me manquait c'était un mécanisme de rappel au moment où ça se passe
(le changement d'IP). Etant sur Fedora j'ai donc créé /etc/ppp/ip-up.local dans
lequel je lance une fenêtre gedit (pour voir quand ça se passe). Ca devrait marcher.



Je me permets d'apporter quelques précisions sur le sujet.
Ce qui est commun à toutes les distributions c'est que pppd lance le script
/etc/ppp/ip-up quand le lien est opérationnel et lance le script
/etc/ppp/ip-down quand le lien est coupé.
Ensuite, sur certaines distributions, Debian comme nous l'a précisé Samuel
Colin ici mais aussi SuSe (de souvenir), les scripts ip-up et ip-down
lancent avec run-parts les scripts présents dans ip-up.d et ip-down.d.


Donc tu peux mettre ton script dans ces répertoires-là.



Où sur les autres distributions comme Gentoo et Slackware placer le script
dans /etc/ppp/ip-up. Sur RedHat dans /etc/ppp/ip-up.local.

Enfin, il faut savoir que les scripts sont lancés avec les variables
d'environnement suivantes :



1 2