Forum Linux.debian/ubuntu un script utile

Posté par  .
Étiquettes : aucune
0
26
avr.
2006
Bonjour, quelqu'un saurait comment récupéré sous la forme d'une variable le résultat d'un ifconfig et notamment:

ppp0 Lien encap:Protocole Point-à-Point
inet adr:62.34.76.142 P-t-P:62.34.64.1

de manière à l'intégrer à un script de connexion ppp0 de type:
route add default gw 'la valeur de la variable différente pour chaque attribution d'ip de l'ISP' ppp0

merci
  • # sed multiligne

    Posté par  . Évalué à 1.

    ifconfig | sed -e N -e 's/^ppp0.*P-t-P:\(.*\)$/\1/'

    Le -e N dit à sed de prendre en compte la ligne suivant pour chaque ligne.

    la partie entre P-t-P: et la fin de ligne ($) est celle qui t'intéresse.

    À adapter, je n'ai pas de ppp sous la main...
  • # man pppd ou man routed

    Posté par  (site web personnel) . Évalué à 2.

    pppd a une option defaultroute ou qui permet de definir la connexion spécifiié comme route par défaut de la machine.

    routed est un demon qui permet d'annoncer et recuperer des tables de routage sur un réseau par le protocole RIP1 et RIP2.

    normalement, si tu n'as qu'une machine, l'option defaultroute est suffisante, si tu as un réseau un peu complexe ( 2 acces ADSL ou un fallback RNIS ), routed est un bon complement.
    • [^] # Re: man pppd ou man routed

      Posté par  . Évalué à 1.

      En lisant le fameux manuel de pppd, tu veras que tu peux lancer des scripts quand la connexion est établie (ou terminée) (voir les /etc/ppp/ip-up /etc/ppp/ip-down & co.). Ces scripts disposent dans leur environnement de variables fournissant directement les infos que tu cherches (DEVICE, IFNAME, IPLOCAL, IPREMOTE ....). À partir de là, tu as la possibilité de magouiller pas mal de choses si ta config réseau est complexe.

      Sinon, pour un cas classique, tu devrais vraiment utiliser l'option defaultroute (et éventuellement replacedefaultroute )
  • # awk est ton ami

    Posté par  . Évalué à 0.

    Je pense que :
    ifconfig ppp0 | grep inet | awk '{print $2}' | awk -F':' '{print $2}'
    peut convenir.
    Il y a des versions sur internet à coups de cut et autres xargs, mais c'est plus complexe et impossibe à retenir de tête (alors que là, si !)
    • [^] # Re: awk est ton ami

      Posté par  . Évalué à 2.

      ifconfig ppp0 | grep inet | awk '{print $2}' | awk -F':' '{print $2}'

      BEURK !!!!!!!! Si c'est pour faire ça autant utiliser cut :)
      je propose:
      ifconfig ppp0 | grep inet | awk '{ sub("adr:","",$2);print $2}'

      mieux encore:
      ifconfig ppp0 | awk '/inet/ { sub("adr:","",$2);print $2}'

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.