# Ifconfig et passage de debian 8 a debian 9

**URL:** <https://www.debian-fr.org/t/ifconfig-et-passage-de-debian-8-a-debian-9/76265>\
**Category:** Programmation\
**Created:** [Mars 28, 2018, 9:03 UTC](https://www.debian-fr.org/t/ifconfig-et-passage-de-debian-8-a-debian-9/76265 "2018-03-28T21:03:35Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![domoticity](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/cc9497/32.png) [@domoticity](https://www.debian-fr.org/u/domoticity)\
**Post date:** [Mars 28, 2018, 9:03 UTC](https://www.debian-fr.org/t/ifconfig-et-passage-de-debian-8-a-debian-9/76265/1 "2018-03-28T21:03:36Z")

</div>

Hello à toutes et tous,  
J’ai trouvé un script sous Debian 8 pour récupérer l’adresse ip de l’interface eth0.  
Il fonctionne très bien 😛

Mais j’ai passé ma carte tinkerboard sous Debian 9 et le ifconfig a change :

```
root@diagbox:~# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 192.168.1.52 netmask 255.255.255.0 broadcast 192.168.1.255
        inet6 fe80::2e4d:54ff:fe43:34dd prefixlen 64 scopeid 0x20<link>
        ether 2c:4d:54:43:34:dd txqueuelen 1000 (Ethernet)
        RX packets 325181 bytes 431503077 (411.5 MiB)
        RX errors 0 dropped 0 overruns 0 frame 0
        TX packets 125790 bytes 151664286 (144.6 MiB)
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
        device interrupt 44

```

Et voici le script :

```
                 #!/bin/bash
ifconfig eth0 | grep 'inet addr: ' | cut -d: -f2 | awk '{ print $1}' >/diagbox/web/tmp/ip.txt    

```

Je n’arrive pas à adapter le script au nouveau ifconfig.  
J’ai essayé de ne mettre que inet au lieu de inet adres mais ca ne fonctionne pas.

je ne comprends pas le ct -d: -f2

Est ce que quelqu’un pourrait m’expliquer? 🙂  
Je pourrais aussi adapter le script pour récupérer l’adresse mac

Merci d’avance

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Mars 28, 2018, 9:26 UTC](https://www.debian-fr.org/t/ifconfig-et-passage-de-debian-8-a-debian-9/76265/2 "2018-03-28T21:26:25Z")

</div>

ifconfig n’est plus, mieux vaudrait effectivement utiliser ip addr show eth0.

Si tu cherche à extraire l’IP en bash tu doit pouvoir faire ça avec un :

`ip addr show eth0 | grep inet | tr -s ' ' | cut -d ' ' -f 3`

Maintenant si tu possède plusieurs interfaces cela va te remonter toutes les IPs

Si tu ne veux que la première ligne, en règle générale eth0 si il n’y a pas de wifi ajoute un head -n1 en bout de ligne.

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Mars 29, 2018, 9:40 UTC](https://www.debian-fr.org/t/ifconfig-et-passage-de-debian-8-a-debian-9/76265/3 "2018-03-29T09:40:33Z")

</div>

@Clochette: Malheureusement, c’est vrai… mais tu pars du principe que l’interface se nomme ‹&nbsp;eth0&nbsp;›… Or, hormis d’avoir reconfigurer sa Debian, ce nommage n’est plus vrai par défaut !

Voici ma proposition :

@domoticity: Sachant que si tu fais : `ip link` - cela te restituera toutes les interfaces réseaux sur ta machine, qu’elles soient connectées à un réseau ou non !  
Tu en auras - normalement au moins deux - celle de bouclage locale, et celle communiquant sur un réseau ethernet - qu’elle soit Wifi ou de lien physique. Bien-sûr, tu peux en avoir plus selon ta configuration.

Normalement :

- la première est l’interface de bouclage ‹&nbsp;lo&nbsp;›
- la deuxième est l’interface RJ45, si tu en as une - et, admettons que ce soit le cas…

Le script :

```auto
iface=2
family=inet
addr="$(ip addr show "$(ip link | awk -F': ' '/ '"${iface}"':/ { print $2 }' | head -n1)" | awk -F' ' '/'"${family}"' / { print $2}')"
echo "${addr:0:-3}" # on enlève les trois derniers caractères, car reçu en notation CIDR...

```

En version, un peu plus facile à lire :

```auto
nb=2
family=inet
iface="$(ip link | awk -F': ' '/ '"${nb}"':/ { print $2 }' | head -n1)"
addr="$(ip addr show "${iface}" | awk -F' ' '/'"${family}"' / { print $2 }')"
mac="$(ip addr show "${iface}" | awk -F' ' '/link\/ether/ { print $2 }')"
echo "${addr:0:-3}" 
echo "${mac}"

```

Dans le premier cas, je ne restitue pas la recherche sur l’adresse mac… mais il suffit d’adapter le deuxième exemple au premier si besoin !

* * *

> [@domoticity](#):
>
> je ne comprends pas le ct -d: -f2

Déjà, c’est ‹&nbsp;cut&nbsp;› et non ‹&nbsp;ct&nbsp;›… ensuite, c’est une commande qui comme son nom anglais l’indique permet de couper une chaîne de caractère, selon un séparateur défini…  
Là, elle coupe la chaîne reçue, selon le séparateur ‹&nbsp;:&nbsp;›, et elle restitue le deuxième champ…

Un `man cut` dans ton terminal préféré t’en apprendra plus ! 😉

---

<div class="post-metadata">

**Author:** ![grandtoubab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grandtoubab/32/4505_2.png) [@grandtoubab](https://www.debian-fr.org/u/grandtoubab)\
**Post date:** [Mars 29, 2018, 9:50 UTC](https://www.debian-fr.org/t/ifconfig-et-passage-de-debian-8-a-debian-9/76265/4 "2018-03-29T09:50:46Z")

</div>

Salut  
l’@ip est visible directement dans ip ad

```auto
 ip ad
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: enp4s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 98:4b:e1:c6:c4:7b brd ff:ff:ff:ff:ff:ff
3: wlp3s0b1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1492 qdisc mq state UP group default qlen 1000
    link/ether cc:52:af:5a:a2:b5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.68/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp3s0b1
       valid_lft 84641sec preferred_lft 84641sec

```

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Mars 29, 2018, 9:54 UTC](https://www.debian-fr.org/t/ifconfig-et-passage-de-debian-8-a-debian-9/76265/5 "2018-03-29T09:54:46Z")

</div>

Il ne demande pas comment est-elle visible, mais comment on la récupère !!!

* * *

J’aurais eu la possibilité de te mettre un ‘-1’, tu l’aurais gagné ! 😉

---

<div class="post-metadata">

**Author:** ![grandtoubab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grandtoubab/32/4505_2.png) [@grandtoubab](https://www.debian-fr.org/u/grandtoubab)\
**Post date:** [Mars 29, 2018, 9:59 UTC](https://www.debian-fr.org/t/ifconfig-et-passage-de-debian-8-a-debian-9/76265/6 "2018-03-29T09:59:53Z")

</div>

c’est surtout que je ne vois pas l’interet de passer par ip link, tout est dans ip ad pour un expert en code dans ton genre ça doit etre facile

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Mars 29, 2018, 10:04 UTC](https://www.debian-fr.org/t/ifconfig-et-passage-de-debian-8-a-debian-9/76265/7 "2018-03-29T10:04:01Z")

</div>

De toute façon, tu vas être obligé de récupérer une première fois le nom de l’interface réseau, en question.

Il est vrai que `ip ad` permet de voir tes adresses réseaux… mais `ip link` est LA commande pour connaître le nom de tes interfaces…  
Sans parler que @Clochette a parlé - à juste titre de `ip addr show...`

À toi de voir, perso, je le propose ainsi et selon le manpage ‘‘ip’’ !

---

<div class="post-metadata">

**Author:** ![grandtoubab](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grandtoubab/32/4505_2.png) [@grandtoubab](https://www.debian-fr.org/u/grandtoubab)\
**Post date:** [Mars 29, 2018, 10:33 UTC](https://www.debian-fr.org/t/ifconfig-et-passage-de-debian-8-a-debian-9/76265/8 "2018-03-29T10:33:23Z")

</div>

une piste `ip ad | egrep '"state UP" | inet'`

c’est cadeau.

```auto
root@debian:/# ip ad | egrep '"state UP" | inet'
    inet 127.0.0.1/8 scope host lo
    inet 192.168.1.68/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp3s0b1
root@debian:/# 

```

et avec cut considérant que l’@ip est affichée des colonnes 9 à 21

`ip ad | grep -i "state UP" -A2 | grep inet | cut -c9-21`

```auto
root@debian:/# ip ad | grep -i "state UP" -A2 | grep inet | cut -c9-21
 192.168.1.68
root@debian:/# 

```

---

<div class="post-metadata">

**Author:** ![domoticity](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/cc9497/32.png) [@domoticity](https://www.debian-fr.org/u/domoticity)\
**Post date:** [Mars 29, 2018, 5:11 UTC](https://www.debian-fr.org/t/ifconfig-et-passage-de-debian-8-a-debian-9/76265/9 "2018-03-29T17:11:09Z")

</div>

Merci à toutes et tous pour vos messages.  
JE vais essayer toutes les méthodes proposées.  
en tout cas mille foi merci encore. 🙂

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Mars 29, 2018, 6:48 UTC](https://www.debian-fr.org/t/ifconfig-et-passage-de-debian-8-a-debian-9/76265/10 "2018-03-29T18:48:21Z")

</div>

Quelque soit la méthode que tu utilises, le tout est surtout que tu comprennes de quoi il retourne et comment faire… 😉

---

<div class="post-metadata">

**Author:** ![domoticity](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/cc9497/32.png) [@domoticity](https://www.debian-fr.org/u/domoticity)\
**Post date:** [Mars 30, 2018, 1:56 UTC](https://www.debian-fr.org/t/ifconfig-et-passage-de-debian-8-a-debian-9/76265/11 "2018-03-30T13:56:02Z")

</div>

C’est ce qui est intéressant avec ce forum, beaucoup de personnes interavissent, donnent des conseils et leur méthode. Et in apprend énormément ainsi 🙂 j’ai utilisé la méthode de clochette qui me sort mon iPhone avec le masque de sous réseau sœur forme 192.168.1.10/24  
Merci à toutes et tous encore.  
Maintenant je vais me penser sur la fonction cut lol
