Re: Récupérer une IP

2003-02-07 Par sujet Yann Forget
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Bonjour,

Le Jeudi 6 Février 2003 15:36, Francois Deppierraz a écrit :

  J'ai un petit exercice de style. J'ai besoin de récupérer l'adresse IP de
  ma passerelle ADSL. Avec
 
  /sbin/ifconfig | grep P-t-P | cut -d ' ' -f 12 | cut -b 6-
 
  je réccupère bien l'adresse IP, mais après ?
  Je veux remplacer l'ancienne adresse par la nouvelle adresse dans un
  fichier de conf (ligne ipadress= ) avant de relancer un service. Je pense
  qu'il faut utiliser sed, mais comment ?

 Je pense que tu as meilleur temps d'utiliser un petit script dans
 /etc/ppp/ip-up.d/ qui sera appellé par pppd avec la nouvelle adresse IP
 en argument.

Oui, mais mon adresse IP change sans que /etc/ppp/ip-up.d/ soit utilisé. Où 
alors comment, je ne sais pas...

Yann
- -- 
http://www.forget-me.net
Alternatives sur le Net
http://keys.indymedia.org/showkey.py?key=0A34CBDA
gpg --keyserver keys.indymedia.org --recv-key 0A34CBDA
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+Q7mom4KYjQo0y9oRAidaAJ9ohu9w0B7O0Gb9wIaZZ7ErzC6HygCeICDz
6PzbgMr1hph2dsm8tOP4rrY=
=vsww
-END PGP SIGNATURE-
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.



Re: Récupérer une IP

2003-02-07 Par sujet Daniel Cordey
On Friday 07 February 2003 14:48, Yann Forget wrote:

 yann@r2d2:~$ /sbin/ifconfig ppp0
 ppp0  Link encap:Point-to-Point Protocol
   inet addr:81.48.176.239  P-t-P:81.48.176.1  Mask:255.255.255.255
   UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
   RX packets:23340 errors:0 dropped:0 overruns:0 frame:0
   TX packets:19246 errors:0 dropped:0 overruns:0 carrier:0
   collisions:0 txqueuelen:3
   RX bytes:16668745 (15.8 MiB)  TX bytes:2241692 (2.1 MiB)

Il s'agit donc bien d'un exercise théorique et il est évident qu'il y a aussi 
d'autres moyens de parvenir à ce résultat. On peut presque considérer cela 
comme un jeu :-)

L'objectif est de n'extraire que les adresse IP de la ligne contenant P-t-P en 
éliminant le texte; ceci en utilisant uniquement sed... et sans pipe. Mis à 
part la récupération de la commande ifconfig; 'faut pas éxagérer !

donc, on fait :

yann@r2d2:~$ /sbin/ifconfig ppp0 |\
sed 's/^.*P-t-P/@/
/^[^@]/d
s/^.*addr://
s/[ ]*P-t-P:/@/
s/[ ]*[Mask]*:.*$//
s/\([0-9.]*\)@\([0-9.]*\)/\2 \1/'
81.48.176.1 81.48.176.239   - résultat
yann@r2d2:

La dernière ligne sert à permuter les deux IP... je ne me souviens plus si tu 
en avais besoin, mais je l'ai mis pour le fun :-)

Mais bon, j'explique chaque ligne :

s/^.*P-t-P/@/

Remplace le premier caractère de toute ligne contenant la chaîne P-t-P par
le caractère '@'. J'ai ne fait besoin de marquer cette ligne car je veux me 
débarasser de toutes les autres.

/^[^@]/d

Je vire donc toutes les lignes qui ne commencent pas par le caractère '@'.

s/^.*addr://

Je substitue tout ce qui se trouve depuis le début de la ligne jusqu'a la 
chaîne 'addr:' par rien-du-tout.

s/[ ]*P-t-P:/@/

Je substitue tout ce qui se trouve entre le premier espace trouvé et la 
chaîne 'P-t-P:' par le caractère '@' (encore un marqueur pour la suite).

s/[ ]*[Mask]*:.*$//

La fin de la ligne ne m'intéresse pas et je vire donc tout ce qui suit la 
chaîne 'Mask:' (précédé d'espaces)... par rien-du-tout.

s/\([0-9.]*\)@\([0-9.]*\)/\2 \1/

Et, finalement, comme je l'ai déjà dit, je permute les deux adresses IP... 
pour rigoler.

Le résultat de l'exécution donne :

81.48.176.1 81.48.176.239

Bien sûr, il est possible d'écrire des commandes différentes, mais il me 
semble que nous sommes proche du nombre de commandes minimum.

Daniel




--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.



Re: Récupérer une IP

2003-02-07 Par sujet Yann Forget
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Re:

Intéressant !
Mais est-ce vraiment nécessaire de marquer les lignes avant de les virer ?

Yann

Le Vendredi 7 Février 2003 17:01, Daniel Cordey a écrit :

 yann@r2d2:~$ /sbin/ifconfig ppp0 |\
 sed 's/^.*P-t-P/@/
   /^[^@]/d
   s/^.*addr://
   s/[ ]*P-t-P:/@/
   s/[ ]*[Mask]*:.*$//
   s/\([0-9.]*\)@\([0-9.]*\)/\2 \1/'

 La dernière ligne sert à permuter les deux IP... je ne me souviens plus si
 tu en avais besoin, mais je l'ai mis pour le fun :-)

 Mais bon, j'explique chaque ligne :

   s/^.*P-t-P/@/

 Remplace le premier caractère de toute ligne contenant la chaîne P-t-P
 par le caractère '@'. J'ai ne fait besoin de marquer cette ligne car je
 veux me débarasser de toutes les autres.

   /^[^@]/d

 Je vire donc toutes les lignes qui ne commencent pas par le caractère '@'.

- -- 
http://www.forget-me.net
Alternatives sur le Net
http://keys.indymedia.org/showkey.py?key=0A34CBDA
gpg --keyserver keys.indymedia.org --recv-key 0A34CBDA
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+Q95mm4KYjQo0y9oRAgRzAJ96UYAxHO3nKNqxT6RILouWD0QsxgCaA5Fg
rbzHkS7bL50JAto45+T6gBo=
=zCgS
-END PGP SIGNATURE-
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.



Re: Récupérer une IP

2003-02-07 Par sujet Daniel Cordey
On Friday 07 February 2003 17:27, Yann Forget wrote:

 Intéressant !
 Mais est-ce vraiment nécessaire de marquer les lignes avant de les virer ?

L'objectif étant de pouvoir écrire les commandes suivantes de manière simple. 
C'est à dire qu'elles puissent rester lisibles. Sinon, il est toujours 
difficile d'écrire des trucs du style :

Vire-moi tout ce qui se trouve aprèes la troisième chaîne de caractère, 
jusqu'à la qatrième, tout en faisant attention que dans certains cas la 
trosième chaîne peut contenir un espace, parceque...

Donc, je marque de manière sûre, j'exécute un truc facile à éecrire et, si 
nécessaire, j'enlève ensuite le marqueur. C'est une question de philosphie 
:-)

Bon week-end

Daniel

--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.



Re: Récupérer une IP

2003-02-07 Par sujet Marc SCHAEFER
On Fri, Feb 07, 2003 at 02:50:32PM +0100, Yann Forget wrote:
 Oui, mais mon adresse IP change sans que /etc/ppp/ip-up.d/ soit utilisé. Où 
 alors comment, je ne sais pas...

Si l'IP change c'est que quelque chose la change: je penche pour pppoe.
N'y a-t-il aucun `hook' dans ce logiciel pour notifier via un script ?

Ca serait plus simple et propre, et très utile. Si ce n'est pas le cas
je te conseille de faire un `reportbug' `wishlist'.
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.



Récupérer une IP

2003-02-06 Par sujet Yann Forget
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Bonjour,

J'ai un petit exercice de style. J'ai besoin de récupérer l'adresse IP de ma 
passerelle ADSL. Avec 

/sbin/ifconfig | grep P-t-P | cut -d ' ' -f 12 | cut -b 6-

je réccupère bien l'adresse IP, mais après ?
Je veux remplacer l'ancienne adresse par la nouvelle adresse dans un fichier 
de conf (ligne ipadress= ) avant de relancer un service. Je pense qu'il faut 
utiliser sed, mais comment ?

ping `/sbin/ifconfig | grep P-t-P | cut -d ' ' -f 12 | cut -b 6-` fonctionne, 
mais je n'arrive pas à utiliser sed. En plus, il y a peut-être plus élégant 
que mon petit hack.

Merci,
Yann
- -- 
http://www.forget-me.net
Alternatives sur le Net
http://keys.indymedia.org/showkey.py?key=0A34CBDA
gpg --keyserver keys.indymedia.org --recv-key 0A34CBDA
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+QnGSm4KYjQo0y9oRAoj8AJ0fG76DcR0CeWBJC/9LT19AhCDgYgCdECrF
n3QVmu/c6gi4T060oEnvmX8=
=ta6z
-END PGP SIGNATURE-
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.



Re: Récupérer une IP

2003-02-06 Par sujet Francois Deppierraz
On Thu, Feb 06, 2003 at 03:30:42PM +0100, Yann Forget wrote:

 Bonjour,

Hello,

 J'ai un petit exercice de style. J'ai besoin de récupérer l'adresse IP de ma 
 passerelle ADSL. Avec 
 
 /sbin/ifconfig | grep P-t-P | cut -d ' ' -f 12 | cut -b 6-
 
 je réccupère bien l'adresse IP, mais après ?
 Je veux remplacer l'ancienne adresse par la nouvelle adresse dans un fichier 
 de conf (ligne ipadress= ) avant de relancer un service. Je pense qu'il faut 
 utiliser sed, mais comment ?

Je pense que tu as meilleur temps d'utiliser un petit script dans
/etc/ppp/ip-up.d/ qui sera appellé par pppd avec la nouvelle adresse IP
en argument.
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.



Re: Récupérer une IP

2003-02-06 Par sujet Vuko Brigljevic
Yann Forget wrote:
 J'ai un petit exercice de style. J'ai besoin de récupérer l'adresse IP de ma
 passerelle ADSL. Avec
 
 /sbin/ifconfig | grep P-t-P | cut -d ' ' -f 12 | cut -b 6-
 
 je réccupère bien l'adresse IP, mais après ?
 Je veux remplacer l'ancienne adresse par la nouvelle adresse dans un fichier
 de conf (ligne ipadress= ) avant de relancer un service. Je pense qu'il faut
 utiliser sed, mais comment ?

J'avais passe un certain temps a lutter avec sed et
j'ai termine par me rabattre sur perle: si $ip1 et
$ip2 sont deux variables shell contenants l'ancienne
et la nouvelle addresse:

perl -pi -e s%$ip1%$ip2%o fichier.de.conf

Tu peux bien sur aussi utiliser des chaines 
textuelles (pas des variables shell) pour 
nommer les adresses.

Vuko

-- 
===|
 Vuko Brigljevic,EP Research Fellow|
 CERN - European Laboratory for Particle Physics   |
 - |
 Mail Address: CERN, Div. EP, 1211 Geneve 23 (Switzerland) |
 Office  : B40-2B08|
 Phone   : +41-22-767 1662 |
 e-mail  : [EMAIL PROTECTED] |
 www : http://www.slac.stanford.edu/~vuko  |
===|
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.



Re: Récupérer une IP

2003-02-06 Par sujet Daniel Cordey
On Thursday 06 February 2003 15:30, Yann Forget wrote:

 /sbin/ifconfig | grep P-t-P | cut -d ' ' -f 12 | cut -b 6-

Je ne'ai pas de connection ADSL sous la moin et donc je n'arrive pas a savoir 
quelle est la structure de la ligne contenant ton P-t-P. Peux-tu m'envoyer un 
exemple de ton ifconfig et aussi m'ecrire ce que tu veux au final ? Je te 
ferai ca volontier...:-)

Daniel


--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.



Re: Récupérer une IP

2003-02-06 Par sujet Félix Hauri
On Thu, 6 Feb 2003, Yann Forget wrote:

 Bonjour,
 
 J'ai un petit exercice de style. J'ai besoin de récupérer l'adresse IP de ma
 passerelle ADSL. Avec
 
 /sbin/ifconfig | grep P-t-P | cut -d ' ' -f 12 | cut -b 6-
 
Dangereux ça, si tu as plusieurs interfaces ppp!?

$ /sbin/ifconfig ppp0 | grep P-t-P | cut -d ' ' -f 12 | cut -b 6-
serait mieux... ou encore
$ /sbin/ifconfig ppp0 | tr :=\  \\n | grep -A1 addr | tail -n1
Pas mieux, différent;)

 je réccupère bien l'adresse IP, mais après ?

Tu la mémorise:

$ MyIp=$(/sbin/ifconfig ppp0 | tr :=\  \\n | grep -A1 addr | tail -n1)

 Je veux remplacer l'ancienne adresse par la nouvelle adresse dans un fichier
 de conf (ligne ipadress= ) avant de relancer un service. Je pense qu'il faut
 utiliser sed, mais comment ?
$ cat monfile.conf | sed -e s/^ipadress=.*$/ipadress=$MyIp/ tmpfile
$ cat tmpfile monfile.conf
$ rm tmpfile

( Le ``^'' signifie début de ligne et
  le ``$'' signigie fin de ligne )

Par exemple...
Si tu crains les accès multiples sur ton fichier de conf, alors un lock
sera peut-être nécessaire...

--
 Félix Hauri  -  [EMAIL PROTECTED]  -  http://www.f-hauri.ch


--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.