bonjour
je voudrais récupérer l'adresse ip et le /mask pour le mettre dans une regle iptables.
ex : LAN="192.168.27.0/24"
savez-vous comment je peux faire ?
j'ai essayé ceci : ifconfig eth0 | awk '/inet/ { sub("adr:","",$2);print $2}'
mais ca me retourne sont adresse ip hors moi je veux l'adresse du lan avec /nombre de bit à 1 du mask.
Merci
# avec awk -F"/"
Posté par palm123 (site web personnel) . Évalué à 2.
Désolé, j'ai pas de machine sous la main pour vérifier
ifconfig eth0 | awk -F "/" '{ print $1 }'
ウィズコロナ
[^] # Re: avec awk -F"/"
Posté par Bernez . Évalué à 2.
ip a ls eth0 | awk '/[0-9]+\./{print $2}'
# Re: Iptable et adresse réseaux
Posté par Frédéric Perrin (site web personnel) . Évalué à 2.
[^] # Re: Iptable et adresse réseaux
Posté par cyberdam . Évalué à 1.
voici le code :
inter="eth0"
tmp=""
nb=0
for i in $(seq 4)
do
mask[$i]="$(ifconfig $inter|grep Masque|cut -d ':' -f4|cut -d '.' -f$i)"
octet[$i]="$(ifconfig $inter|grep Masque|cut -d ':' -f2|cut -d '.' -f$i|cut -d ' ' -f1)"
if [[ $(ifconfig $inter|grep Masque|cut -d ':' -f4|cut -d '.' -f$i) = 255 ]]
then
let "nb = $nb + 8"
tmp="$tmp${octet[$i]}."
else
t="0"
tmp="$tmp$t"
fi
done
echo "$tmp/$nb"
sinon Merci beaucoup :)
[^] # Re: Iptable et adresse réseaux
Posté par cyberdam . Évalué à 1.
192.168.27.0/24
default
comment je fais pour récupérer que la 1er ligne ?
Merci
[^] # Re: Iptable et adresse réseaux
Posté par Frédéric Perrin (site web personnel) . Évalué à 2.
# ip route show | awk '/^[0-9].*eth0/ { print $1 }'
172.25.205.0/24
Bien sûr, des filtres plus complets sont peut-être préférables.
Aussi, bien sûr, si eth0 appartient à plusieurs réseaux, tu auras plusieurs réponses. Je pense au cas où eth0 appartient à plusieurs VLANs (ou des topologies un peu bizarre avec eth0 présente dans plusieurs subnets différents), peut-être d'autres subtilités auxquelles je ne pense pas sur le moment.
[^] # Re: Iptable et adresse réseaux
Posté par cyberdam . Évalué à 1.
c'est pas évident la syntaxe du bash , j'ai un peu de mal meme beaucoup
Merci
# IPy (solution en Python)
Posté par Victor STINNER (site web personnel) . Évalué à 2.
$ python
>>> from IPy import IP
>>> ip=IP('192.168.0.12/24', make_net=True)
>>> ip.net()
IP('192.168.0.0')
>>> ip.prefixlen()
24
[^] # Re: IPy (solution en Python)
Posté par cyberdam . Évalué à 1.
merci quand meme
# Vive IP
Posté par Frederic Brugmans . Évalué à 3.
ip addr show eth0 |awk '/inet /{ print $2 }'
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.