Browse Source

IPV6: Universal script to list user IPs

bin/v-list-user-ips

Rewriting and adaptation to ipv6

Addition of new field VERSION (4/6)
root 3 years ago
parent
commit
f265e85553
1 changed files with 23 additions and 15 deletions
  1. 23 15
      bin/v-list-user-ips

+ 23 - 15
bin/v-list-user-ips

@@ -22,18 +22,28 @@ source $HESTIA/func/main.sh
 # load config file
 source_conf "$HESTIA/conf/hestia.conf"
 
+# Read and filter IP config file
+read_ip_config() {
+	VERSION=""
+	source_conf "$HESTIA/data/ips/$1"
+	if [ -z "$VERSION" ]; then
+		VERSION=4
+	fi
+}
+
 # JSON list function
 json_list() {
 	echo '{'
 	ip_count=$(echo "$ips" | wc -l)
 	i=1
 	for IP in $ips; do
-		source_conf "$HESTIA/data/ips/$IP"
+		read_ip_config ${IP}
 		echo -n '    "'$IP'": {
         "OWNER": "'$OWNER'",
         "STATUS": "'$STATUS'",
         "NAME": "'$NAME'",
-        "NAT": "'$NAT'"
+        "NAT": "'$NAT'",
+        "VERSION": "'$VERSION'"
         }'
 		if [ "$i" -lt "$ip_count" ]; then
 			echo ','
@@ -47,25 +57,26 @@ json_list() {
 
 # SHELL list function
 shell_list() {
-	echo "IP  NAT  OWNER   STATUS   NAME"
-	echo "--  ---  -----   ------   ---"
+	echo "IP  NAT  OWNER   STATUS   NAME   VER"
+	echo "--  ---  -----   ------   ----   ---"
 	for IP in $ips; do
-		source_conf "$HESTIA/data/ips/$IP"
+		read_ip_config ${IP}
 		if [ -z "$NAT" ]; then
 			NAT='no'
 		fi
 		if [ -z "$NAME" ]; then
 			NAME='no'
 		fi
-		echo "$IP $NAT $OWNER $STATUS $NAME"
+		echo "$IP $NAT $OWNER $STATUS $NAME $VERSION"
 	done
 }
 
 # PLAIN list function
 plain_list() {
 	for IP in $ips; do
-		source_conf "$HESTIA/data/ips/$IP"
-		echo -e "$IP\t$OWNER\t$STATUS\t$NAME\t$NAT"
+		VERSION=""
+		read_ip_config ${IP}
+		echo -e "$IP\t$OWNER\t$STATUS\t$NAME\t$NAT\t$VERSION"
 	done
 }
 
@@ -73,8 +84,8 @@ plain_list() {
 csv_list() {
 	echo "IP,OWNER,STATUS,NAME,NAT"
 	for IP in $ips; do
-		source_conf "$HESTIA/data/ips/$IP"
-		echo "$IP,$OWNER,$STATUS,$NAME,$NAT"
+		read_ip_config ${IP}
+		echo "$IP,$OWNER,$STATUS,$NAME,$NAT,$VERSION"
 	done
 }
 
@@ -92,11 +103,8 @@ is_object_valid 'user' 'USER' "$user"
 
 # Defining fileds to select
 owner='admin'
-owner_ips=$(grep -A 1 -H "OWNER='$owner'" $HESTIA/data/ips/*)
-owner_ips=$(echo "$owner_ips" | grep "STATUS='shared'")
-owner_ips=$(echo "$owner_ips" | cut -f 7 -d / | cut -f 1 -d -)
-user_ips=$(grep -H "OWNER='$user'" $HESTIA/data/ips/*)
-user_ips=$(echo "$user_ips" | cut -f 7 -d / | cut -f 1 -d :)
+owner_ips="$(grep -A 1 -H "OWNER='$owner'" $HESTIA/data/ips/* | grep "STATUS='shared'" | sed 's/.*\/\([^\/*]\)/\1/;s/-STATUS.*//')"
+user_ips="$(grep -l "OWNER='$user'" $HESTIA/data/ips/* | sed 's/.*\/\([^\/*]\)/\1/')"
 ips=$(echo -e "$user_ips\n$owner_ips" | sort -u | sed "/^$/d")
 fields='$IP $OWNER $STATUS $NAME $NAT'