Bonjour à tous,
En fait, j'ai 2 questions.
1. Je me demandais si on pouvait savoir, par un script non interactif et
de manière _fiable_ (ou de la manière la plus fiable possible), si une
interface (au sens interface réseau du noyau) correspond à une carte
réseau Wifi ou non (et dans ce cas je considère que c'est une carte
réseau filaire). Le script prendrait en argument le nom d'une des
interfaces retournées par la commande "ip link" (par exemple) :
is_wireless.sh "eth1" && echo OK is_wireless.sh "wlan0" && echo OK
Là, ce serait en shell mais n'importe quel langage de script mon
conviendrait (bon j'avoue j'aurais une préférence pour le shell mais bon
;)).
Évidemment, si vous me dites qu'il suffit juste de tester que le nom de
l'interface commence par « wlan » et que c'est un test 100% fiable alors
Ok. Mais je constate qu'on peut tomber sur des noms bizarres parfois.
Par exemple, récemment suite à une installation « out-of-the-box »
d'une Ubuntu Xenial, je me suis retrouvé avec une interface nommée
enp0s3 au lieu du bon vieux eth0. Alors ok, là c'était de la carte
réseau filaire Ethernet mais du coup, le nom de l'interface est-il
vraiment une information fiable ?
J'aimerais que ce script soit compatible Debian Jessie et Ubuntu Xenial
si possible.
2. Par ailleurs, savez-vous s'il y a une option qui m'aurait échappée
pour parser facilement (typiquement parser dans un script) la sortie des
commandes « ip ». Par exemple, avec la commande « ip addr » j'ai la
liste de mes interfaces avec leur IP etc. Si je veux récupérer l'IP de
l'interface eth0 dans la sortie de « ip addr », évidemment je peux le
faire à coup de grep, awk etc. mais je trouve cela fragile. Par exemple,
il serait plus robuste de pouvoir parser une sortie json ou je ne sais
quoi. Je suis surpris de ne pas avoir trouvé d'option pour ça. Mais j'ai
peut-être mal cherché.
Merci d'avance pour votre aide.
Bonjour à tous,
En fait, j'ai 2 questions.
1. Je me demandais si on pouvait savoir, par un script non interactif et
de manière _fiable_ (ou de la manière la plus fiable possible), si une
interface (au sens interface réseau du noyau) correspond à une carte
réseau Wifi ou non (et dans ce cas je considère que c'est une carte
réseau filaire). Le script prendrait en argument le nom d'une des
interfaces retournées par la commande "ip link" (par exemple) :
is_wireless.sh "eth1" && echo OK is_wireless.sh "wlan0" && echo OK
Là, ce serait en shell mais n'importe quel langage de script mon
conviendrait (bon j'avoue j'aurais une préférence pour le shell mais bon
;)).
Évidemment, si vous me dites qu'il suffit juste de tester que le nom de
l'interface commence par « wlan » et que c'est un test 100% fiable alors
Ok. Mais je constate qu'on peut tomber sur des noms bizarres parfois.
Par exemple, récemment suite à une installation « out-of-the-box »
d'une Ubuntu Xenial, je me suis retrouvé avec une interface nommée
enp0s3 au lieu du bon vieux eth0. Alors ok, là c'était de la carte
réseau filaire Ethernet mais du coup, le nom de l'interface est-il
vraiment une information fiable ?
J'aimerais que ce script soit compatible Debian Jessie et Ubuntu Xenial
si possible.
2. Par ailleurs, savez-vous s'il y a une option qui m'aurait échappée
pour parser facilement (typiquement parser dans un script) la sortie des
commandes « ip ». Par exemple, avec la commande « ip addr » j'ai la
liste de mes interfaces avec leur IP etc. Si je veux récupérer l'IP de
l'interface eth0 dans la sortie de « ip addr », évidemment je peux le
faire à coup de grep, awk etc. mais je trouve cela fragile. Par exemple,
il serait plus robuste de pouvoir parser une sortie json ou je ne sais
quoi. Je suis surpris de ne pas avoir trouvé d'option pour ça. Mais j'ai
peut-être mal cherché.
Merci d'avance pour votre aide.
Bonjour à tous,
En fait, j'ai 2 questions.
1. Je me demandais si on pouvait savoir, par un script non interactif et
de manière _fiable_ (ou de la manière la plus fiable possible), si une
interface (au sens interface réseau du noyau) correspond à une carte
réseau Wifi ou non (et dans ce cas je considère que c'est une carte
réseau filaire). Le script prendrait en argument le nom d'une des
interfaces retournées par la commande "ip link" (par exemple) :
is_wireless.sh "eth1" && echo OK is_wireless.sh "wlan0" && echo OK
Là, ce serait en shell mais n'importe quel langage de script mon
conviendrait (bon j'avoue j'aurais une préférence pour le shell mais bon
;)).
Évidemment, si vous me dites qu'il suffit juste de tester que le nom de
l'interface commence par « wlan » et que c'est un test 100% fiable alors
Ok. Mais je constate qu'on peut tomber sur des noms bizarres parfois.
Par exemple, récemment suite à une installation « out-of-the-box »
d'une Ubuntu Xenial, je me suis retrouvé avec une interface nommée
enp0s3 au lieu du bon vieux eth0. Alors ok, là c'était de la carte
réseau filaire Ethernet mais du coup, le nom de l'interface est-il
vraiment une information fiable ?
J'aimerais que ce script soit compatible Debian Jessie et Ubuntu Xenial
si possible.
2. Par ailleurs, savez-vous s'il y a une option qui m'aurait échappée
pour parser facilement (typiquement parser dans un script) la sortie des
commandes « ip ». Par exemple, avec la commande « ip addr » j'ai la
liste de mes interfaces avec leur IP etc. Si je veux récupérer l'IP de
l'interface eth0 dans la sortie de « ip addr », évidemment je peux le
faire à coup de grep, awk etc. mais je trouve cela fragile. Par exemple,
il serait plus robuste de pouvoir parser une sortie json ou je ne sais
quoi. Je suis surpris de ne pas avoir trouvé d'option pour ça. Mais j'ai
peut-être mal cherché.
Merci d'avance pour votre aide.
$ iwconfig lo 2>&1 | grep -q wireless
$ echo $?
0
$ iwconfig wlan0 2>&1 | grep -q wireless
$ echo $?
1
$ iwconfig lo 2>&1 | grep -q wireless
$ echo $?
0
$ iwconfig wlan0 2>&1 | grep -q wireless
$ echo $?
1
$ iwconfig lo 2>&1 | grep -q wireless
$ echo $?
0
$ iwconfig wlan0 2>&1 | grep -q wireless
$ echo $?
1
Bonjour à tous,
En fait, j'ai 2 questions.
1. Je me demandais si on pouvait savoir, par un script non interactif
et de manière _fiable_ (ou de la manière la plus fiable possibl e), si
une interface (au sens interface réseau du noyau) correspond à une
carte réseau Wifi ou non (et dans ce cas je considère que c'est une
carte réseau filaire). Le script prendrait en argument le nom d'une
des interfaces retournées par la commande "ip link" (par exemple) :
is_wireless.sh "eth1" && echo OK
is_wireless.sh "wlan0" && echo OK
LÃ , ce serait en shell mais n'importe quel langage de script mon
conviendrait (bon j'avoue j'aurais une préférence pour le shell mais
bon ;)).
Ãvidemment, si vous me dites qu'il suffit juste de tester que le nom
de l'interface commence par « wlan » et que c'est un test 100% fiable
alors Ok. Mais je constate qu'on peut tomber sur des noms bizarres
parfois. Par exemple, récemment suite à une installation « out-of-the-box »
d'une Ubuntu Xenial, je me suis retrouvé avec une interface nommà ©e
enp0s3 au lieu du bon vieux eth0. Alors ok, là c'était de la ca rte
réseau filaire Ethernet mais du coup, le nom de l'interface est-il
vraiment une information fiable ?
J'aimerais que ce script soit compatible Debian Jessie et Ubuntu
Xenial si possible.
Bonjour à tous,
En fait, j'ai 2 questions.
1. Je me demandais si on pouvait savoir, par un script non interactif
et de manière _fiable_ (ou de la manière la plus fiable possibl e), si
une interface (au sens interface réseau du noyau) correspond à une
carte réseau Wifi ou non (et dans ce cas je considère que c'est une
carte réseau filaire). Le script prendrait en argument le nom d'une
des interfaces retournées par la commande "ip link" (par exemple) :
is_wireless.sh "eth1" && echo OK
is_wireless.sh "wlan0" && echo OK
LÃ , ce serait en shell mais n'importe quel langage de script mon
conviendrait (bon j'avoue j'aurais une préférence pour le shell mais
bon ;)).
Ãvidemment, si vous me dites qu'il suffit juste de tester que le nom
de l'interface commence par « wlan » et que c'est un test 100% fiable
alors Ok. Mais je constate qu'on peut tomber sur des noms bizarres
parfois. Par exemple, récemment suite à une installation « out-of-the-box »
d'une Ubuntu Xenial, je me suis retrouvé avec une interface nommà ©e
enp0s3 au lieu du bon vieux eth0. Alors ok, là c'était de la ca rte
réseau filaire Ethernet mais du coup, le nom de l'interface est-il
vraiment une information fiable ?
J'aimerais que ce script soit compatible Debian Jessie et Ubuntu
Xenial si possible.
Bonjour à tous,
En fait, j'ai 2 questions.
1. Je me demandais si on pouvait savoir, par un script non interactif
et de manière _fiable_ (ou de la manière la plus fiable possibl e), si
une interface (au sens interface réseau du noyau) correspond à une
carte réseau Wifi ou non (et dans ce cas je considère que c'est une
carte réseau filaire). Le script prendrait en argument le nom d'une
des interfaces retournées par la commande "ip link" (par exemple) :
is_wireless.sh "eth1" && echo OK
is_wireless.sh "wlan0" && echo OK
LÃ , ce serait en shell mais n'importe quel langage de script mon
conviendrait (bon j'avoue j'aurais une préférence pour le shell mais
bon ;)).
Ãvidemment, si vous me dites qu'il suffit juste de tester que le nom
de l'interface commence par « wlan » et que c'est un test 100% fiable
alors Ok. Mais je constate qu'on peut tomber sur des noms bizarres
parfois. Par exemple, récemment suite à une installation « out-of-the-box »
d'une Ubuntu Xenial, je me suis retrouvé avec une interface nommà ©e
enp0s3 au lieu du bon vieux eth0. Alors ok, là c'était de la ca rte
réseau filaire Ethernet mais du coup, le nom de l'interface est-il
vraiment une information fiable ?
J'aimerais que ce script soit compatible Debian Jessie et Ubuntu
Xenial si possible.
Merci d'avance pour votre aide.
$ iwconfig lo 2>&1 | grep -q wireless
$ echo $?
0
$ iwconfig wlan0 2>&1 | grep -q wireless
$ echo $?
1
Parser:
Certaines options de substitution d'expressions régulières de sed peuvent
rendre des services occasionnels.
On peut tout faire avec Lex & Yacc, mais il y a un investissement initial
non négligeable.
http://dinosaur.compilertools.net/
Sinon avec des bouts de manipulations de chaines de caractères en python,
tout est possible et assez facile.
Merci d'avance pour votre aide.
$ iwconfig lo 2>&1 | grep -q wireless
$ echo $?
0
$ iwconfig wlan0 2>&1 | grep -q wireless
$ echo $?
1
Parser:
Certaines options de substitution d'expressions régulières de sed peuvent
rendre des services occasionnels.
On peut tout faire avec Lex & Yacc, mais il y a un investissement initial
non négligeable.
http://dinosaur.compilertools.net/
Sinon avec des bouts de manipulations de chaines de caractères en python,
tout est possible et assez facile.
Merci d'avance pour votre aide.
$ iwconfig lo 2>&1 | grep -q wireless
$ echo $?
0
$ iwconfig wlan0 2>&1 | grep -q wireless
$ echo $?
1
Parser:
Certaines options de substitution d'expressions régulières de sed peuvent
rendre des services occasionnels.
On peut tout faire avec Lex & Yacc, mais il y a un investissement initial
non négligeable.
http://dinosaur.compilertools.net/
Sinon avec des bouts de manipulations de chaines de caractères en python,
tout est possible et assez facile.
Sous Debian Stretch
grep <interface> /proc/net/wireless
fait le truc.
Sous Debian Stretch
grep <interface> /proc/net/wireless
fait le truc.
Sous Debian Stretch
grep <interface> /proc/net/wireless
fait le truc.
1. Je me demandais si on pouvait savoir, par un script non interactif
et de manière _fiable_ (ou de la manière la plus fiable possible), si
une interface (au sens interface réseau du noyau) correspond à une
carte réseau Wifi ou non (et dans ce cas je considère que c'est une
carte réseau filaire). Le script prendrait en argument le nom d'une
des interfaces retournées par la commande "ip link" (par exemple) :
is_wireless.sh "eth1" && echo OK
is_wireless.sh "wlan0" && echo OK
Là, ce serait en shell mais n'importe quel langage de script mon
conviendrait (bon j'avoue j'aurais une préférence pour le shell mais
bon ;)).
Évidemment, si vous me dites qu'il suffit juste de tester que le nom
de l'interface commence par « wlan » et que c'est un test 100% fiable
alors Ok. Mais je constate qu'on peut tomber sur des noms bizarres
parfois. Par exemple, récemment suite à une installation « out-of-the-box »
d'une Ubuntu Xenial, je me suis retrouvé avec une interface nommée
enp0s3 au lieu du bon vieux eth0. Alors ok, là c'était de la carte
réseau filaire Ethernet mais du coup, le nom de l'interface est-il
vraiment une information fiable ?
2. Par ailleurs, savez-vous s'il y a une option qui m'aurait échappée
pour parser facilement (typiquement parser dans un script) la sortie
des commandes « ip ». Par exemple, avec la commande « ip addr » j'ai
la liste de mes interfaces avec leur IP etc. Si je veux récupérer l'IP
de l'interface eth0 dans la sortie de « ip addr », évidemment je peux
le faire à coup de grep, awk etc. mais je trouve cela fragile. Par
exemple, il serait plus robuste de pouvoir parser une sortie json ou
je ne sais quoi. Je suis surpris de ne pas avoir trouvé d'option pour
ça. Mais j'ai peut-être mal cherché.
1. Je me demandais si on pouvait savoir, par un script non interactif
et de manière _fiable_ (ou de la manière la plus fiable possible), si
une interface (au sens interface réseau du noyau) correspond à une
carte réseau Wifi ou non (et dans ce cas je considère que c'est une
carte réseau filaire). Le script prendrait en argument le nom d'une
des interfaces retournées par la commande "ip link" (par exemple) :
is_wireless.sh "eth1" && echo OK
is_wireless.sh "wlan0" && echo OK
Là, ce serait en shell mais n'importe quel langage de script mon
conviendrait (bon j'avoue j'aurais une préférence pour le shell mais
bon ;)).
Évidemment, si vous me dites qu'il suffit juste de tester que le nom
de l'interface commence par « wlan » et que c'est un test 100% fiable
alors Ok. Mais je constate qu'on peut tomber sur des noms bizarres
parfois. Par exemple, récemment suite à une installation « out-of-the-box »
d'une Ubuntu Xenial, je me suis retrouvé avec une interface nommée
enp0s3 au lieu du bon vieux eth0. Alors ok, là c'était de la carte
réseau filaire Ethernet mais du coup, le nom de l'interface est-il
vraiment une information fiable ?
2. Par ailleurs, savez-vous s'il y a une option qui m'aurait échappée
pour parser facilement (typiquement parser dans un script) la sortie
des commandes « ip ». Par exemple, avec la commande « ip addr » j'ai
la liste de mes interfaces avec leur IP etc. Si je veux récupérer l'IP
de l'interface eth0 dans la sortie de « ip addr », évidemment je peux
le faire à coup de grep, awk etc. mais je trouve cela fragile. Par
exemple, il serait plus robuste de pouvoir parser une sortie json ou
je ne sais quoi. Je suis surpris de ne pas avoir trouvé d'option pour
ça. Mais j'ai peut-être mal cherché.
1. Je me demandais si on pouvait savoir, par un script non interactif
et de manière _fiable_ (ou de la manière la plus fiable possible), si
une interface (au sens interface réseau du noyau) correspond à une
carte réseau Wifi ou non (et dans ce cas je considère que c'est une
carte réseau filaire). Le script prendrait en argument le nom d'une
des interfaces retournées par la commande "ip link" (par exemple) :
is_wireless.sh "eth1" && echo OK
is_wireless.sh "wlan0" && echo OK
Là, ce serait en shell mais n'importe quel langage de script mon
conviendrait (bon j'avoue j'aurais une préférence pour le shell mais
bon ;)).
Évidemment, si vous me dites qu'il suffit juste de tester que le nom
de l'interface commence par « wlan » et que c'est un test 100% fiable
alors Ok. Mais je constate qu'on peut tomber sur des noms bizarres
parfois. Par exemple, récemment suite à une installation « out-of-the-box »
d'une Ubuntu Xenial, je me suis retrouvé avec une interface nommée
enp0s3 au lieu du bon vieux eth0. Alors ok, là c'était de la carte
réseau filaire Ethernet mais du coup, le nom de l'interface est-il
vraiment une information fiable ?
2. Par ailleurs, savez-vous s'il y a une option qui m'aurait échappée
pour parser facilement (typiquement parser dans un script) la sortie
des commandes « ip ». Par exemple, avec la commande « ip addr » j'ai
la liste de mes interfaces avec leur IP etc. Si je veux récupérer l'IP
de l'interface eth0 dans la sortie de « ip addr », évidemment je peux
le faire à coup de grep, awk etc. mais je trouve cela fragile. Par
exemple, il serait plus robuste de pouvoir parser une sortie json ou
je ne sais quoi. Je suis surpris de ne pas avoir trouvé d'option pour
ça. Mais j'ai peut-être mal cherché.
Peut-être en regardant la présence de /sys/class/net/<ifn>/phy80211 ?
for ifname in /sys/class/net/*; do
printf '%10s is ' "${ifname##*/}"
test -L "$ifname/phy80211" || printf 'not '
printf 'IEEE 802.11n'
done
Ce lien devrait t'intéresser :
<https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/>
2. Par ailleurs, savez-vous s'il y a une option qui m'aurait échappée
pour parser facilement (typiquement parser dans un script) la sortie
des commandes « ip ». Par exemple, avec la commande « ip addr » j'ai
la liste de mes interfaces avec leur IP etc. Si je veux récupérer l'IP
de l'interface eth0 dans la sortie de « ip addr », évidemment je peux
le faire à coup de grep, awk etc. mais je trouve cela fragile. Par
exemple, il serait plus robuste de pouvoir parser une sortie json ou
je ne sais quoi. Je suis surpris de ne pas avoir trouvé d'option pour
ça. Mais j'ai peut-être mal cherché.
Quelle est la finalité ?
Peut-être en regardant la présence de /sys/class/net/<ifn>/phy80211 ?
for ifname in /sys/class/net/*; do
printf '%10s is ' "${ifname##*/}"
test -L "$ifname/phy80211" || printf 'not '
printf 'IEEE 802.11n'
done
Ce lien devrait t'intéresser :
<https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/>
2. Par ailleurs, savez-vous s'il y a une option qui m'aurait échappée
pour parser facilement (typiquement parser dans un script) la sortie
des commandes « ip ». Par exemple, avec la commande « ip addr » j'ai
la liste de mes interfaces avec leur IP etc. Si je veux récupérer l'IP
de l'interface eth0 dans la sortie de « ip addr », évidemment je peux
le faire à coup de grep, awk etc. mais je trouve cela fragile. Par
exemple, il serait plus robuste de pouvoir parser une sortie json ou
je ne sais quoi. Je suis surpris de ne pas avoir trouvé d'option pour
ça. Mais j'ai peut-être mal cherché.
Quelle est la finalité ?
Peut-être en regardant la présence de /sys/class/net/<ifn>/phy80211 ?
for ifname in /sys/class/net/*; do
printf '%10s is ' "${ifname##*/}"
test -L "$ifname/phy80211" || printf 'not '
printf 'IEEE 802.11n'
done
Ce lien devrait t'intéresser :
<https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/>
2. Par ailleurs, savez-vous s'il y a une option qui m'aurait échappée
pour parser facilement (typiquement parser dans un script) la sortie
des commandes « ip ». Par exemple, avec la commande « ip addr » j'ai
la liste de mes interfaces avec leur IP etc. Si je veux récupérer l'IP
de l'interface eth0 dans la sortie de « ip addr », évidemment je peux
le faire à coup de grep, awk etc. mais je trouve cela fragile. Par
exemple, il serait plus robuste de pouvoir parser une sortie json ou
je ne sais quoi. Je suis surpris de ne pas avoir trouvé d'option pour
ça. Mais j'ai peut-être mal cherché.
Quelle est la finalité ?
Quelle est la finalité ?
Quelle est la finalité ?
Quelle est la finalité ?
Quelle est la finalité ?
Je n'ai peut-être pas bien répondu à ta question en fait.
Le « contexte » c'est que, dans mon temps de loisir, j'essaye de
participer au projet SambaEdu (https://github.com/SambaEdu) qui est
une sorte de solution pour établissement scolaire de serveur
"contrôleur de domaine Windows" mais via la technologie Samba (et pas
Active Directory bien sûr).
Plus précisément, on essaye de mettre en place un système de serveur
PXE pour que les utilisateurs puissent installer des machines
"clientes" Ubuntu ou Debian et les intégrer au domaine Samba, le tout
100% automatiquement. Et typiquement, après l'installation du système
de base sous un nom d'hôte générique ("poste"), la machine est censée
rechercher son adresse MAC dans l'annuaire du serveur Samba
(consultable en lecture via le réseau) et récupérer son nom d'hôte
associé à cette adresse MAC. Donc tu imagines que dans l'histoire il
y a du script shell dans lequel par exemple je dois récupérer
l'adresse MAC de l'unique interface réseau qui a été configurée via le
DHCP du réseau local. Etc. Voilà le genre de tambouille. ;)
Quelle est la finalité ?
Je n'ai peut-être pas bien répondu à ta question en fait.
Le « contexte » c'est que, dans mon temps de loisir, j'essaye de
participer au projet SambaEdu (https://github.com/SambaEdu) qui est
une sorte de solution pour établissement scolaire de serveur
"contrôleur de domaine Windows" mais via la technologie Samba (et pas
Active Directory bien sûr).
Plus précisément, on essaye de mettre en place un système de serveur
PXE pour que les utilisateurs puissent installer des machines
"clientes" Ubuntu ou Debian et les intégrer au domaine Samba, le tout
100% automatiquement. Et typiquement, après l'installation du système
de base sous un nom d'hôte générique ("poste"), la machine est censée
rechercher son adresse MAC dans l'annuaire du serveur Samba
(consultable en lecture via le réseau) et récupérer son nom d'hôte
associé à cette adresse MAC. Donc tu imagines que dans l'histoire il
y a du script shell dans lequel par exemple je dois récupérer
l'adresse MAC de l'unique interface réseau qui a été configurée via le
DHCP du réseau local. Etc. Voilà le genre de tambouille. ;)
Quelle est la finalité ?
Je n'ai peut-être pas bien répondu à ta question en fait.
Le « contexte » c'est que, dans mon temps de loisir, j'essaye de
participer au projet SambaEdu (https://github.com/SambaEdu) qui est
une sorte de solution pour établissement scolaire de serveur
"contrôleur de domaine Windows" mais via la technologie Samba (et pas
Active Directory bien sûr).
Plus précisément, on essaye de mettre en place un système de serveur
PXE pour que les utilisateurs puissent installer des machines
"clientes" Ubuntu ou Debian et les intégrer au domaine Samba, le tout
100% automatiquement. Et typiquement, après l'installation du système
de base sous un nom d'hôte générique ("poste"), la machine est censée
rechercher son adresse MAC dans l'annuaire du serveur Samba
(consultable en lecture via le réseau) et récupérer son nom d'hôte
associé à cette adresse MAC. Donc tu imagines que dans l'histoire il
y a du script shell dans lequel par exemple je dois récupérer
l'adresse MAC de l'unique interface réseau qui a été configurée via le
DHCP du réseau local. Etc. Voilà le genre de tambouille. ;)
Si c'est juste l'adresse MAC :
MAC=$(cat /sys/class/net/<ifname>/address)
Tu peux regarder également /sys/class/net/<ifname>/operstate pour savoir
si l'interface est up ou down ; voir
<https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net>
pour d'autres informations disponibles.
Pour l'IP, il faut bricoler :
<http://unix.stackexchange.com/questions/119269/how-to-get-ip-address-using-shell-script>
Soit, par exemple, si tu n'as pas besoin de la longueur du préfixe :
ip addr | awk '/scope global/{split($2, a, "/"); print a[1]}'
Si c'est juste l'adresse MAC :
MAC=$(cat /sys/class/net/<ifname>/address)
Tu peux regarder également /sys/class/net/<ifname>/operstate pour savoir
si l'interface est up ou down ; voir
<https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net>
pour d'autres informations disponibles.
Pour l'IP, il faut bricoler :
<http://unix.stackexchange.com/questions/119269/how-to-get-ip-address-using-shell-script>
Soit, par exemple, si tu n'as pas besoin de la longueur du préfixe :
ip addr | awk '/scope global/{split($2, a, "/"); print a[1]}'
Si c'est juste l'adresse MAC :
MAC=$(cat /sys/class/net/<ifname>/address)
Tu peux regarder également /sys/class/net/<ifname>/operstate pour savoir
si l'interface est up ou down ; voir
<https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net>
pour d'autres informations disponibles.
Pour l'IP, il faut bricoler :
<http://unix.stackexchange.com/questions/119269/how-to-get-ip-address-using-shell-script>
Soit, par exemple, si tu n'as pas besoin de la longueur du préfixe :
ip addr | awk '/scope global/{split($2, a, "/"); print a[1]}'