Rechercher : dans
Par :

Bash script : récupération de donner ifconfig

Dernière réponse le 6 nov 2008 à 13:47:19 Gimly86, le 5 nov 2008 à 21:20:30 
 Signaler ce message aux modérateurs

Bonsoir tout le monde,

Je viens ici car j'ai un petit souci de script bash. Voila je souhaiterais récupérer certaines données de la commande ifconfig afin de les replacer dans un tableau.

Je souhaites récupérer le nom de l'interface (ex : eth0, eth1, eth0:0), son adresse ip (pas de masque, pas de broadcast et pas de network) et son adresse mac.

Sauf que j'ai beau cherché mais bon, je n'y arrives pas ...

pour trouver les IP et les adresses mac, j'ai trouvé deux regex sur le net :

ifconfig|grep -woE '(([0-9]{1,3}\.){3}[0-9]{1,3})'
ifconfig|grep -woE '([ [ :xdigit: ] ]{1,2}:){5}[ [ :xdigit: ] ]{1,2}'
(il n'est pas censé y avoir d'espace entre les crochets mais ça déconne à l'affichage)

mais voila je suis bloqué pour faire ma fonction (intégrer dans un gros script "gui") à cause du tri des ip et de la regex pour les interfaces.

Si quelqu'un pouvez m'aider, s'il vous plait ?

Merci bien :)

Meilleures réponses pour « Bash script : récupération de donner ifconfig » dans :
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
Bash - Les paramètres VoirIntroduction Les paramètres positionnels Exemple 1 Les paramètres spéciaux Exemple 2 Initialiser des paramètres - La commande "set" - Exemples - La commande "shift" - Exemple 3 Introduction Il est possible de fournir à un script,...
Sed - Introduction à SED - Part III VoirSED - The Stream EDitor - Part III Ce document est une introduction à la pratique et à l'utilisation de l'éditeur de flux "SED", qui essaie de couvrir certaines fonctionnalités assez méconnues, pour ne pas dire "quasi inconnues", qui font de "SED"...

1

Gimly86, le 6 nov 2008 à 07:36:39

Personne n'a une petite idée ?

Répondre à Gimly86

2

jipicy, le 6 nov 2008 à 08:23:20

Salut,

Essaie ça :

/sbin/ifconfig | sed -n '
/^eth/,/^$/{
1 {
s/\([^ ]*\).*ddr \(.*\)/\1 \2/p
}
2 {
s/.*adr:\([^ ]*\).*/\1/p
}
}' | sed 'N;s/\n//'
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

3

Gimly86, le 6 nov 2008 à 09:45:57

Merci pour ta réponse jipicy :).
Je viens de tester et ça tri quasiement ce que je veux ^^, voici le résultat :

eth0 00:0D:B9:05:68:64


Seulement il me manque l'IP et les autres interfaces.

Je te mets la sortie de mon ifconfig pour que tu vois un peu comment ça donne :

eth0      Link encap:Ethernet  HWaddr 00:0D:B9:05:68:64
          inet addr:192.168.0.254  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20d:b9ff:fe05:6864/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:236884404 errors:0 dropped:0 overruns:0 frame:0
          TX packets:218166278 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:248353293 (236.8 MiB)  TX bytes:944990121 (901.2 MiB)
          Interrupt:10 Base address:0xd000

eth1      Link encap:Ethernet  HWaddr 00:0D:B9:05:68:65
          inet addr:192.168.8.250  Bcast:192.168.8.255  Mask:255.255.255.0
          inet6 addr: fe80::20d:b9ff:fe05:6865/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:244367402 errors:1 dropped:0 overruns:0 frame:3
          TX packets:246778893 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3287654229 (3.0 GiB)  TX bytes:4227508965 (3.9 GiB)
          Interrupt:9 Base address:0xf000

eth2      Link encap:Ethernet  HWaddr 00:0D:B9:05:68:66
          inet addr:172.16.6.250  Bcast:172.16.255.255  Mask:255.255.255.0
          inet6 addr: fe80::20d:b9ff:fe05:6866/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:129 errors:0 dropped:0 overruns:0 frame:0
          TX packets:198262 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:18077 (17.6 KiB)  TX bytes:17082859 (16.2 MiB)
          Interrupt:11 Base address:0x1000

eth1:rep0 Link encap:Ethernet  HWaddr 00:0D:B9:05:68:65
          inet addr:172.28.130.254  Bcast:172.28.255.255  Mask:255.255.255.0
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          Interrupt:9 Base address:0xf000


Merci pour vos réponses :)

Répondre à Gimly86

4

jipicy, le 6 nov 2008 à 12:29:39

Re--

Bon en adaptant à ta sortie de ifconfig et en mettant le tout dans un fichier, ça donne :

jp@MDK:~/tmpfs ssh$ cat fichier
eth0      Link encap:Ethernet  HWaddr 00:0D:B9:05:68:64
          inet addr:192.168.0.254  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20d:b9ff:fe05:6864/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:236884404 errors:0 dropped:0 overruns:0 frame:0
          TX packets:218166278 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:248353293 (236.8 MiB)  TX bytes:944990121 (901.2 MiB)
          Interrupt:10 Base address:0xd000

eth1      Link encap:Ethernet  HWaddr 00:0D:B9:05:68:65
          inet addr:192.168.8.250  Bcast:192.168.8.255  Mask:255.255.255.0
          inet6 addr: fe80::20d:b9ff:fe05:6865/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:244367402 errors:1 dropped:0 overruns:0 frame:3
          TX packets:246778893 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3287654229 (3.0 GiB)  TX bytes:4227508965 (3.9 GiB)
          Interrupt:9 Base address:0xf000

eth2      Link encap:Ethernet  HWaddr 00:0D:B9:05:68:66
          inet addr:172.16.6.250  Bcast:172.16.255.255  Mask:255.255.255.0
          inet6 addr: fe80::20d:b9ff:fe05:6866/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:129 errors:0 dropped:0 overruns:0 frame:0
          TX packets:198262 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:18077 (17.6 KiB)  TX bytes:17082859 (16.2 MiB)
          Interrupt:11 Base address:0x1000

eth1:rep0 Link encap:Ethernet  HWaddr 00:0D:B9:05:68:65
          inet addr:172.28.130.254  Bcast:172.28.255.255  Mask:255.255.255.0
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          Interrupt:9 Base address:0xf000

jp@MDK:~/tmpfs ssh$ sed  -n '
/^eth/,/^$/{
/Link/ {
s/\([^ ]*\).*dr \(.*\)/\1 \2/p
}
/Mask/ {
s/.*addr:\([^ ]*\).*/\1/p
}
}' fichier | sed 'N;s/\n/ /'
eth0 00:0D:B9:05:68:64 192.168.0.254
eth1 00:0D:B9:05:68:65 192.168.8.250
eth2 00:0D:B9:05:68:66 172.16.6.250
eth1:rep0 00:0D:B9:05:68:65 172.28.130.254

jp@MDK:~/tmpfs ssh$
;-)) $ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

5

 Gimly86, le 6 nov 2008 à 13:47:19

Ca marche très bien. C'est impeccable jipicy, ça me permet d'avoir l'option que je souhaité.

Merci beaucoup :)

Répondre à Gimly86
Collection CommentÇaMarche.net