# Injection dun script pour injecter des information d'addresse ip gateway dns pour rendre mon addresse dhcp en static

**URL:** <https://www.debian-fr.org/t/injection-dun-script-pour-injecter-des-information-daddresse-ip-gateway-dns-pour-rendre-mon-addresse-dhcp-en-static/81290>\
**Category:** Programmation\
**Created:** [Février 19, 2020, 7:09 UTC](https://www.debian-fr.org/t/injection-dun-script-pour-injecter-des-information-daddresse-ip-gateway-dns-pour-rendre-mon-addresse-dhcp-en-static/81290 "2020-02-19T19:09:44Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![biker870](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/43a26b/32.png) [@biker870](https://www.debian-fr.org/u/biker870)\
**Post date:** [Février 19, 2020, 7:09 UTC](https://www.debian-fr.org/t/injection-dun-script-pour-injecter-des-information-daddresse-ip-gateway-dns-pour-rendre-mon-addresse-dhcp-en-static/81290/1 "2020-02-19T19:09:44Z")

</div>

voici mon code

```bash
#!/bin/bash
if="ens33" # interface réseau

# la distribution
distribution=$(lsb_release -ds)

# address deja configurées dans le dhcp
maReg='inet ([0-9.]*)\/([0-9]*) brd ([0-9.]*)'
[[$(ip -4 a show $if) =~ $maReg]] 
addr=${BASH_REMATCH[1]}
mask=${BASH_REMATCH[2]}
bcst=${BASH_REMATCH[3]}

maReg='default via ([0-9.]*)'
[[$(ip r) =~ $maReg]]
gateway=${BASH_REMATCH[1]}

maReg='nameserver ([0-9.]*)'
[[$(< /etc/resolv.conf) =~ $maReg]]
dns=${BASH_REMATCH[1]}

##########
# Affichage 
echo -e "\n\n\n\n\n"
echo "Bonjour $USER"
echo -e "\n\n\n"
echo "Votre distribution : $distribution"
echo -e "\n\n\n"
echo -e "Votre addresse ipv4 est :\t$addr"
echo -e "Votre addresse Broadcast est :\t$bcst"
echo -e "Votre masque reseau est :\t$mask"
echo -e "Votre gateway est :\t\t$gateway"
echo -e "Votre DNS est :\t\t\t$dns"

```

et jaimerais ke ce code pis detecter si c’est un centos ou unbuntu et injecter les information de mes variqable au bonne place pour soit lun ou lautre des distribution  
pour que l’addresse dhcp donner deviennet static

merci d’avance

---

<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:** [Février 20, 2020, 10:06 UTC](https://www.debian-fr.org/t/injection-dun-script-pour-injecter-des-information-daddresse-ip-gateway-dns-pour-rendre-mon-addresse-dhcp-en-static/81290/2 "2020-02-20T10:06:40Z")

</div>

Bonjour, @biker870

> [@biker870](#):
>
> voici mon code

Vous êtes sûr ???  
C’est pas plutôt la communauté un peu [ici](https://www.debian-fr.org/t/mettre-une-sortie-de-commande-en-variable-en-tableau/81272), et beaucoup sur [ubuntu-fr](https://forum.ubuntu-fr.org/viewtopic.php?id=2048765) qui vous a grandement facilité la vie, dont principalement @anon29980398 !?  
Un peu d’humilité clairement - vous fera du bien et donnera l’envie de continuer à vous aider !

* * *

D’ailleurs, pourquoi ce sujet n’est pas à la suite de l’[autre](https://www.debian-fr.org/t/mettre-une-sortie-de-commande-en-variable-en-tableau/81272) ???  
Juste pour rappel de la [FAQ](https://www.debian-fr.org/faq#keep-tidy) que vous avez OBLIGATION de lire au moment de vous inscrire sur le site :

> Faites l’effort de mettre les choses au bon endroit, afin que nous puissions passer plus de temps à discuter et moins à ranger. Ainsi :
> 
> ```
> (…)
> Ne postez pas le même contenu dans plusieurs discussions.
> 
> ```

**Résultat : je ferme les deux posts pour non respect des clauses ?!**  
**Qu’en pensez-vous ? ce serait justifié, non ?!**  
Ou, on invite la communauté à ne pas vous répondre cette fois-ci, histoire de vous apprendre à «&nbsp;rendre à César ce qui appartient à César&nbsp;» !

* * *

Et, concernant votre phrasé, est-il normal l’absence de toute conjugaison élémentaire, bien sûr je n’aborde pas l’aspect de l’orthographe ! 😢  
Même sur le forum [ubuntu-fr,](https://forum.ubuntu-fr.org/viewtopic.php?pid=22224335#p22224335) vous avez été interpellé à ce propos !

* * *

Pour finir, vous reversez combien à la communauté pour qu’on vous aide à faire votre travail !?  
Parce que clairement là, ne me dites pas que vous êtes dans le cadre d’un petit projet personnel - on aura un peu - voire beaucoup - de mal à y croire !

---

<div class="post-metadata">

**Author:** ![biker870](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/43a26b/32.png) [@biker870](https://www.debian-fr.org/u/biker870)\
**Post date:** [Février 20, 2020, 4:24 UTC](https://www.debian-fr.org/t/injection-dun-script-pour-injecter-des-information-daddresse-ip-gateway-dns-pour-rendre-mon-addresse-dhcp-en-static/81290/3 "2020-02-20T16:24:00Z")

</div>

Il y a tu moyen que je m’explique o lieu detre juger coupable

C’est ma premiere experience a vie dans les forum et je suis etudiant en administrateur reseau se script a pour but de me faire progresser en bash et non pour le travaille

Et quand j’ai dit voici mon code je voulais montre ce jai pour montrer o gens ou jen etais rendu et non pour m’approprier le code je suis reconnaissant a tous qui maide mais comme vous pouvez voir avec les code que jai de ma pars comme vous pouvez voir je suis plus que debutant et cest pour sa je suis ici pour apprendre

Japprend aussi linux pour avoir plus dune corde a min arc pour plus donc je melange les deux pour apprendre les 2

Je mexscuse si jai blesser quelqun ou avoir un mal entendu avec le forum

Biker870

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Février 21, 2020, 1:03 UTC](https://www.debian-fr.org/t/injection-dun-script-pour-injecter-des-information-daddresse-ip-gateway-dns-pour-rendre-mon-addresse-dhcp-en-static/81290/4 "2020-02-21T01:03:28Z")

</div>

Bonsoir

Quelques liens :

[bash-hackers.org -\> List of Bash online-tutorials](https://wiki-dev.bash-hackers.org/scripting/tutoriallist)

[https://wiki-dev.bash-hackers.org/](https://wiki-dev.bash-hackers.org/)

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Février 21, 2020, 2:16 UTC](https://www.debian-fr.org/t/injection-dun-script-pour-injecter-des-information-daddresse-ip-gateway-dns-pour-rendre-mon-addresse-dhcp-en-static/81290/5 "2020-02-21T14:16:09Z")

</div>

Bonjour

Avec l’extraction automatique  
du nom de l’interface réseau active :

```bash
#!/bin/bash

#############################
# Fonction "cidr to netmask"
# https://www.linuxquestions.org/questions/programming-9/bash-cidr-calculator-646701/#post3433298
cidr2mask() {
  local i mask=""
  local full_octets=$(($1/8))
  local partial_octet=$(($1%8))

  for ((i=0;i<4;i+=1)); do
    if [$i -lt $full_octets]; then
      mask+=255
    elif [$i -eq $full_octets]; then
      mask+=$((256 - 2**(8-$partial_octet)))
    else
      mask+=0
    fi  
    [$i -lt 3] && mask+=.
  done

  echo $mask
}

##################
# La distribution
distribution=$(lsb_release --description --short)

maReg='^default via ([0-9.]*) dev ([[:alnum:]]*)'
[[$(ip route) =~ $maReg]]
gateway=${BASH_REMATCH[1]} # Passerelle
ifAct=${BASH_REMATCH[2]} # Interface réseau active

# Adresses déjà configurées par le DHCP
maReg='inet ([0-9.]*)\/([0-9]*) brd ([0-9.]*)'
[[$(ip -4 address show $ifAct) =~ $maReg]] 
addr=${BASH_REMATCH[1]}
mask=$(cidr2mask ${BASH_REMATCH[2]})
bcst=${BASH_REMATCH[3]}

maReg='nameserver ([0-9.]*)'
[[$(< /etc/resolv.conf) =~ $maReg]]
dns=${BASH_REMATCH[1]}

############
# Affichage 
echo -e "\n\n\n\n\n"
echo "Bonjour $USER"
echo -e "\n\n\n"
echo "Votre distribution : $distribution"
echo -e "\n\n\n"
echo -e "Votre adresse ipv4 est :\t$addr"
echo -e "Votre adresse Broadcast est :\t$bcst"
echo -e "Votre masque réseau est :\t$mask"
echo -e "Votre gateway est :\t\t$gateway"
echo -e "Votre DNS est :\t\t\t$dns"

```
