#1 Le 12/08/2007, à 07:30
- Vergeylen
[Résolu][Débutant] Récupérer des variables de /proc/net/dev
Bonjour,
Je suis débutant en script Bash et je souhaiterais faire un petit utilitaire de partage de connexion réseau.
Pour l'instant, cela fonctionne très bien (je le posterai prochainement) mais uniquement pour les machines ayant les mêmes noms d'interfaces réseaux que moi (eth0, wlan0,...). Je souhaiterais, dans mon script, aller récupérer les noms des interfaces de la machine sur lequel il est lancé, et déterminer quelle interface est de quelle nature (wifi =eth1, Lan=eth0,...).
J'ai pas mal cherché dans la doc et j'ai trouvé (je crois) deux pistes intéressantes:
1) cat /proc/net/dev me donne un tableau comme celui-ci:
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 4108 60 0 0 0 0 0 0 4108 60 0 0 0 0 0 0
eth0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ppp0:1135348449 1680445 0 0 0 0 0 0 1027582727 1744341 0 0 0 0 0 0
N'y aurait-il pas moyen de récupérer les noms des variables des interfaces actives?
2) Pour connaitre l'interface sans fil il existe /proc/net/wireless :
Inter-| sta-| Quality | Discarded packets | Missed | WE
face | tus | link level noise | nwid crypt frag retry misc | beacon | 21
eth1: 0000 0. 0. 0. 0 0 0 0 0 0
Si la récupération de ces données est possible (surement), n'aurais-je pas là une solution à mon problème?
Ou en existe-t-il une plus simple? J'ai aussi tenté de trouver où/comment Network Manager stockait ces mêmes données (car il doit bien les stocker si l'on en croit gedit /etc/network/if-pre-up.d/wireless-tools) mais sans succès.
Si quelqu'un pouvait m'aider... ce serait super!
Dernière modification par Vergeylen (Le 12/08/2007, à 07:54)
Hors ligne
#2 Le 12/08/2007, à 07:52
- HymnToLife
Re : [Résolu][Débutant] Récupérer des variables de /proc/net/dev
firas@Ana ~ $ cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth0:39633668 47399 0 0 0 0 0 0 5314491 42813 0 0 0 0 0 0
vmnet1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vmnet8: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth1: 0 0 0 96 0 0 0 0 0 0 0 0 0 0 0 0
Déjà, virer les deux premières lignes qui ne nous servent à rien :
firas@Ana ~ $ cat /proc/net/dev | tail -n +3
lo: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth0:39642169 47460 0 0 0 0 0 0 5319654 42883 0 0 0 0 0 0
vmnet1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
vmnet8: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
eth1: 0 0 0 109 0 0 0 0 0 0 0 0 0 0 0 0
Puis récupérer uniquement l'identifiant des interfaces :
firas@Ana ~ $ cat /proc/net/dev | tail -n +3 | cut -d ":" -f 1
lo
eth0
vmnet1
vmnet8
eth1
Et voilà Merci, les coreutils !
- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !
Hors ligne
#3 Le 12/08/2007, à 07:54
- Vergeylen
Re : [Résolu][Débutant] Récupérer des variables de /proc/net/dev
Oh Yes, je rêve! Tout bon ça!
Merci beaucoup HymnToLife! C'est exactement ça qu'il me fallait!
Et hop, un petit résolu dans l'entête!
Daniel V.
Dernière modification par Vergeylen (Le 12/08/2007, à 08:05)
Hors ligne
#4 Le 12/08/2007, à 08:13
- HymnToLife
Re : [Résolu][Débutant] Récupérer des variables de /proc/net/dev
Ce n'est pas moi qu'il faut remercier mais tous les gens qui ont codé ces petits outils qui nous facilitent tellement la vie. En l'occurence, pour cat, Torbjorn Granlund et Richard M. Stallman, pour tail, Paul Rubin, David MacKenzie, Ian Lance Taylor et Jim Meyering, et pour cut, David Ihnat, David MacKenzie et Jim Meyering.
Chapeau à eux
- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !
Hors ligne