#!/bin/bash
nets=()
while IFS='\n' read -r net; do
  net=${net%/*}
  net4=$(ip -br -4 addr show scope global to $net 2>/dev/null | awk '$1 !~ "^shim" {print $1}'|tr '\n' ',' | sed 's/,$//')
  [[ -n $net4 ]] && nets+=("$net4 = $net;")
done <<< $(ip -br -4 addr show scope global | awk '/^(br|bond|eth|wlan|wg)[0-9]+(\.[0-9]+)?/ {print $3}' | uniq -d)

while IFS=$'\n' read -r net; do
  net=${net%/*}
  net6=$(ip -br -6 addr show scope global -temporary -deprecated to $net 2>/dev/null | awk '$1 !~ "^shim" {print $1}'|tr '\n' ',' | sed 's/,$//')
  [[ -n $net6 ]] && nets+=("$net6 = $net;")
done <<< $(ip -br -6 addr show scope global -temporary -deprecated | awk '/^(br|bond|eth|wlan|wg)[0-9]+(\.[0-9]+)?/ {print $3}' | uniq -d)
