Bonjour,
J'ai besoin d'afficher le subnet de la carte eth0.
Je travaille sur redhat4 et 5.
Quelle commande ou fichier contient cette information ?
J'ai essayé "ifconfig", mais je ne vois pas ou est le subnet.
Merci d'avance pour vos réponses.
Bonjour,
J'ai besoin d'afficher le subnet de la carte eth0.
Je travaille sur redhat4 et 5.
Quelle commande ou fichier contient cette information ?
J'ai essayé "ifconfig", mais je ne vois pas ou est le subnet.
Merci d'avance pour vos réponses.
Sur une Fedora (proche de Redhat) il me dit avec ifconfig :
inet adr:192.168.0.x Bcast:192.168.0.255 Masque:255.255.255.0
Vous n'avez pas le masque qui apparaît ?
adresse_sous_rx = adresse_ip_hote AND mask_sous_rx
Aucune question n'est bête quand on veut apprendre.
ip route show le montre !
sinon, en bash :j'ai mis de la couleur, ça peut perturber la lecture...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 #/bin/bash # Ce paramètre peut être adapté à la configuration courante defIF=eth0 ## MIEUX VAUT NE RIEN MODIFIER SOUS CETTE LIGNE ## PATH=$PATH:/sbin checkIP() { [[ "$2" =~ ^([0-9]{1,3} ){3}[0-9]{1,3}$ ]] && declare $1=\"$2\" || { echo "erreur dans le format des adresses requises"; exit 1; } } printAddr() { local dotted comment="$1" array=($2) case ${#array[@]} in 1) dotted="%s";; 2) dotted="%s.%s";; 3) dotted="%s.%s.%s";; 4) dotted="%s.%s.%s.%s";; esac printf "\t\t%s \e[01;37m${dotted}\e[0m\n" "$comment" "${array[@]}" [ -n "$3" ] && $FUNCNAME "${@:3}" } complmtA1() { for ((x=0;x<${#1};x++)); do array[n]+="$((! ${1:x:1}))"; done [ -n "$2" ] && { ((n++)); $FUNCNAME "${@: 2}"; } || printf '%s\n' "${array[@]}" } getInfo() { read -a binValues <<<$(printf '%08d\n' $(bc <<< "obase=2; ${1// /;}; ${2// /;}")) addr="${binValues[@]: -4}" CIDR="${addr//[0 ]}" invSubnetMask=( $(complmtA1 $addr) ) for i in "${binValues[@]::4}" do networkAddress+=( $((2#$i & 2#${binValues[y+4]})) ) node_host+=( $((2#$i & 2#${invSubnetMask[y]})) ) broadcast+=( $((2#$i | 2#${invSubnetMask[y++]})) ) done printf '\n\e[01;33m%s\t\e[01;36m%s\n\e[0;33m%s\t\e[0;36m%s\e[0m\n\ndans le Réseau: \e[01;37m%s.%s.%s.%s\e[0m/\e[0;37m%s\e[0m\n' \ "Adresse_IP" "Masque_Réseau" "${1// /.}" "${2// /.}" "${networkAddress[@]}" "${#CIDR}" printAddr "le Numéro de Noeud de la Machine est" "${node_host[*]//0}" "l'Adresse de Diffusion est" "${broadcast[*]}" read -sn1 -p$'\n\n\e[01;30mappuyez sur une touche"\e[0m' printf $"\e[u\e[J" } printf $"\e[s" while getopts a:n: options do case $options in a) checkIP ipAddress "${OPTARG//./ }";; n) checkIP subnetMask "${OPTARG//./ }";; esac done (( OPTIND > 1 )) && getInfo "$ipAddress" "$subnetMask" || { echo "usage: $0 [ <-a address> <-n netmask> ]" addrS=($(sed -n '/inet adr/s/[^:]*:\([^ ]*\).*:\(.*\)/\1 \2/p' <(ifconfig $defIF))) getInfo "${addrS[0]//./ }" "${addrS[1]//./ }"
?
Y a des infos dont le demandeur semble ne pas avoir besoin...
c'est simple !
...
? ou presque
---
merci ram-000
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager