Browse Source

IPV6: Universal list system IP parameters

bin/v-list-sys-ip
asmcc 3 years ago
parent
commit
77eb221edf
1 changed files with 21 additions and 9 deletions
  1. 21 9
      bin/v-list-sys-ip

+ 21 - 9
bin/v-list-sys-ip

@@ -3,6 +3,7 @@
 # options: IP [FORMAT]
 #
 # example: v-list-sys-ip 116.203.78.202
+# example: v-list-sys-ip 1234:55:66::1
 #
 # This function for getting the list of system ip parameters.
 
@@ -11,7 +12,7 @@
 #----------------------------------------------------------#
 
 # Argument definition
-ip=$1
+ip46=${1}
 format=${2-shell}
 
 # Includes
@@ -27,7 +28,7 @@ source_conf "$HESTIA/conf/hestia.conf"
 # JSON list function
 json_list() {
 	echo '{'
-	echo '    "'$ip'": {
+	echo '    "'${ip46}'": {
         "OWNER": "'$OWNER'",
         "STATUS": "'$STATUS'",
         "NAME": "'$NAME'",
@@ -44,7 +45,7 @@ json_list() {
 
 # SHELL list function
 shell_list() {
-	echo "IP:             $ip"
+	echo "IP:             ${ip46}"
 	echo "NETMASK:        $NETMASK"
 	echo "INTERFACE:      $INTERFACE"
 	echo "NAT:            $NAT"
@@ -59,7 +60,7 @@ shell_list() {
 
 # PLAIN list function
 plain_list() {
-	echo -ne "$ip\t$OWNER\t$STATUS\t$NAME\t$U_SYS_USERS\t$U_WEB_DOMAINS\t"
+	echo -ne "${ip46}\t$OWNER\t$STATUS\t$NAME\t$U_SYS_USERS\t$U_WEB_DOMAINS\t"
 	echo -e "$INTERFACE\t$NETMASK\t$NAT\t$TIME\t$DATE"
 }
 
@@ -67,7 +68,7 @@ plain_list() {
 csv_list() {
 	echo -n "IP,OWNER,STATUS,NAME,U_SYS_USERS,U_WEB_DOMAINS,INTERFACE"
 	echo "NETMASK,NAT,TIME,DATE"
-	echo -n "$ip,$OWNER,$STATUS,$NAME,\"$U_SYS_USERS\",$U_WEB_DOMAINS,"
+	echo -n "${ip46},$OWNER,$STATUS,$NAME,\"$U_SYS_USERS\",$U_WEB_DOMAINS,"
 	echo "$INTERFACE, $NETMASK,$NAT,$TIME,$DATE"
 }
 
@@ -76,9 +77,20 @@ csv_list() {
 #----------------------------------------------------------#
 
 check_args '1' "$#" 'IP [FORMAT]'
-is_format_valid 'ip'
-if [ ! -e "$HESTIA/data/ips/$ip" ]; then
-	check_result $E_NOTEXIST "ip $ip doesn't exist"
+ip_format="$(get_ip_format ${ip46})"	#	ip verification and format identification
+if [ -n "$ip_format" ]; then
+	if [ $ip_format -eq 6 ]; then
+		ip=""
+		ipv6="${ip46}"
+		is_format_valid 'ipv6'
+	else
+		ip="${ip46}"
+		ipv6=""
+		is_format_valid 'ip'
+	fi
+fi
+if [ ! -e "$HESTIA/data/ips/${ip46}" ]; then
+	check_result $E_NOTEXIST "ip ${ip46} doesn't exist"
 fi
 
 #----------------------------------------------------------#
@@ -86,7 +98,7 @@ fi
 #----------------------------------------------------------#
 
 # Parsing ip
-source_conf "$HESTIA/data/ips/$ip"
+source_conf "$HESTIA/data/ips/${ip46}"
 
 # Listing data
 case $format in