Bash script : récupération de donner ifconfig
Résolu
Gimly86
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
Gimly86 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
Gimly86 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
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 :
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 :)
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 :)
A voir également:
- Ifconfig bash
- Bingo bash free - Télécharger - Divers Jeux
- Bash addition ✓ - Forum Shell
- Bash list ✓ - Forum Shell
- Bash pause ✓ - Forum Shell
- Bash permission non accordée - Forum Shell
5 réponses
Salut,
Essaie ça :
Essaie ça :
/sbin/ifconfig | sed -n ' /^eth/,/^$/{ 1 { s/\([^ ]*\).*ddr \(.*\)/\1 \2/p } 2 { s/.*adr:\([^ ]*\).*/\1/p } }' | sed 'N;s/\n//';-))
Merci pour ta réponse jipicy :).
Je viens de tester et ça tri quasiement ce que je veux ^^, voici le résultat :
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 :
Merci pour vos réponses :)
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 :)
Re--
Bon en adaptant à ta sortie de ifconfig et en mettant le tout dans un fichier, ça donne :
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$;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question