|
|
@@ -0,0 +1,71 @@
|
|
|
+#!/bin/bash
|
|
|
+# info: list system network
|
|
|
+# options: [FORMAT] [FILTER]
|
|
|
+#
|
|
|
+# example: v-list-sys-network list 6
|
|
|
+#
|
|
|
+# This function for obtaining the list of system ip addresses.
|
|
|
+
|
|
|
+#----------------------------------------------------------#
|
|
|
+# Variables & Functions #
|
|
|
+#----------------------------------------------------------#
|
|
|
+
|
|
|
+function list_network() {
|
|
|
+ ip_view=${1-shell}
|
|
|
+ ip_type=${2}
|
|
|
+ ip_filter=""
|
|
|
+ ii=1
|
|
|
+ [ -n "$ip_type" ] && [ $ip_type -ne 4 -a $ip_type -ne 6 ] && ip_type=""
|
|
|
+ [ -n "$ip_type" ] && ip_filter=" -$ip_type"
|
|
|
+ ip_raw_string="$(/sbin/ip$ip_filter addr show scope global | sed -ne '/^[0-9]*\:/{h;d};G;s/^\(.*\)\n[0-9]*:\(.*\)/\1 \2/;/inet/s/[ \t]*inet[6]* \([0-9a-z.:]*\)\/\([0-9]*\).* \([0-9a-z]*\):[ \t]<.*>.*/\1 \2 \3/p')"
|
|
|
+ ip_count=$(echo "$ip_raw_string" | wc -l)
|
|
|
+ case $ip_view in
|
|
|
+ shell)
|
|
|
+ printf '%-25s%-5s%-8s\n' 'IP address' 'Mask' 'Interface'
|
|
|
+ echo "------------------------ ---- ---------"
|
|
|
+ ;;
|
|
|
+ csv)
|
|
|
+ echo 'IP,MASK,INTERFACE'
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+ echo "$ip_raw_string" | while read ip_addr ip_mask ip_iface; do
|
|
|
+ case $ip_view in
|
|
|
+ list)
|
|
|
+ echo "${ip_addr}"
|
|
|
+ ;;
|
|
|
+ plain)
|
|
|
+ echo "${ip_addr} ${ip_mask} ${ip_iface}"
|
|
|
+ ;;
|
|
|
+ shell)
|
|
|
+ printf '%-25s%-5s%-8s\n' ${ip_addr} ${ip_mask} ${ip_iface}
|
|
|
+ ;;
|
|
|
+ csv)
|
|
|
+ echo "${ip_addr},${ip_mask},${ip_iface}"
|
|
|
+ ;;
|
|
|
+ json)
|
|
|
+ echo -n ' "'$ip_addr'": {
|
|
|
+ "MASK": "'$ip_mask'",
|
|
|
+ "INTERFACE": "'$ip_iface'"
|
|
|
+ }'
|
|
|
+ if [ "$ii" -lt "$ip_count" ]; then
|
|
|
+ echo ','
|
|
|
+ else
|
|
|
+ echo
|
|
|
+ fi
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+ (( ii++ ))
|
|
|
+ done
|
|
|
+}
|
|
|
+
|
|
|
+#----------------------------------------------------------#
|
|
|
+# Action #
|
|
|
+#----------------------------------------------------------#
|
|
|
+
|
|
|
+list_network $1 $2
|
|
|
+
|
|
|
+#----------------------------------------------------------#
|
|
|
+# Hestia #
|
|
|
+#----------------------------------------------------------#
|
|
|
+
|
|
|
+exit
|