From e6d2f1e288ee309851e75edcb006cc24b97738bf Mon Sep 17 00:00:00 2001 From: PhilippeLeroux Date: Wed, 4 Apr 2018 08:22:46 +0200 Subject: [PATCH] Distinction entre les types d'IP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajout d'un séparateur entre les IP réservés, dynamiques et statiques. --- dns/show_dns.sh | 56 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 15 deletions(-) diff --git a/dns/show_dns.sh b/dns/show_dns.sh index fd5ea2c..5227cf9 100755 --- a/dns/show_dns.sh +++ b/dns/show_dns.sh @@ -2,30 +2,56 @@ # vim: ts=4:sw=4 . ~/plescripts/plelib.sh +. ~/plescripts/global.cfg -typeset -r domain=$(hostname -d) +typeset -r horizontal_separator=$( fill "~" $(( 18 + 1 + 1 + 1 + 15 )) ) -typeset -r horizontal_separator=$( fill "~" $(( 18 + 1 + 1 + 1 + 15)) ) info $horizontal_separator -info "$(printf "%-18s | %s" "Server" "ip")" +info "$(printf "%-18s | %s" "Server" "IP")" info $horizontal_separator -# Avec le DHCP les fichiers DNS sont reformatés, les IP d'une adresse de SCAN -# ne sont pas simple à récupérer, donc je passe maintenant par le fichier -# reverse. -typeset -r network="$(ping -c 1 $(hostname) |\ - grep "PING" |\ - cut -d\( -f2 |\ - cut -d. -f1-3)" -cat /var/named/reverse.$domain |\ - grep -E "^[0-9]" |\ - grep -v "arpa" |\ - sort -n |\ +typeset prev_server_name +typeset ip_type=reserved + +cat /var/named/reverse.$infra_domain |\ + grep -E "^[0-9]" |\ + grep -v "arpa" |\ + sort -n |\ while read ip_node f2 server_name do [ x"$ip_node" == x ] && continue || true + + case "$ip_type" in + reserved) + if [ "$ip_node" -gt "$dhcp_max_ip_node" ] + then # Toutes les IP réservées ont été affichée et il n'y a pas d'IP dynamiques. + info $horizontal_separator + ip_type=orcl_servers + elif [ "$ip_node" -ge "$dhcp_min_ip_node" ] + then # Toutes les IP réservées ont été affichées. + info $horizontal_separator + ip_type=dynamic + fi + ;; + dynamic) + if [ "$ip_node" -gt "$dhcp_max_ip_node" ] + then # Toutes les IP dynamiques ont été affichées. + info $horizontal_separator + ip_type=orcl_servers + fi + ;; + esac + + # Supprime le nom de domaine. server_name="$(cut -d. -f1<<<"$server_name")" - info "$(printf "%-18s | %s" $server_name "$network.$ip_node")" + + if [ "$prev_server_name" == "$server_name" ] + then # Les adresses de SCAN ne sont affichées qu'une fois. + server_name="" + else + prev_server_name=$server_name + fi + info "$(printf "%-18s | %s" "$server_name" "$infra_network.$ip_node")" done info $horizontal_separator