fix ip parsing

This commit is contained in:
Jason Sun 2023-02-07 12:30:14 -05:00
parent b0d3abcc9b
commit 03950c60ca

View file

@ -93,22 +93,6 @@ TUN needs to be enabled before running this installer."
fi fi
new_client_dns () { new_client_dns () {
echo "Select a DNS server for the client:"
echo " 1) Current system resolvers"
echo " 2) Google"
echo " 3) 1.1.1.1"
echo " 4) OpenDNS"
echo " 5) Quad9"
echo " 6) AdGuard"
echo " 7) Custom resolvers"
read -p "DNS server [1]: " dns
until [[ -z "$dns" || "$dns" =~ ^[1-7]$ ]]; do
echo "$dns: invalid selection."
read -p "DNS server [1]: " dns
done
# DNS
case "$dns" in
1|"")
# Locate the proper resolv.conf # Locate the proper resolv.conf
# Needed for systems running systemd-resolved # Needed for systems running systemd-resolved
if grep '^nameserver' "/etc/resolv.conf" | grep -qv '127.0.0.53' ; then if grep '^nameserver' "/etc/resolv.conf" | grep -qv '127.0.0.53' ; then
@ -117,7 +101,25 @@ new_client_dns () {
resolv_conf="/run/systemd/resolve/resolv.conf" resolv_conf="/run/systemd/resolve/resolv.conf"
fi fi
# Extract nameservers and provide them in the required format # Extract nameservers and provide them in the required format
dns=$(grep -v '^#\|^;' "$resolv_conf" | grep '^nameserver' | grep -v '127.0.0.53' | grep -oE '[0-9]{1,3}(\.[0-9]{1,3}){3}' | xargs | sed -e 's/ /, /g') system_dns=$(grep -v '^#\|^;' "$resolv_conf" | grep '^nameserver' | grep -v '127.0.0.53' | grep -oE '[0-9]{1,3}(\.[0-9]{1,3}){3}' | xargs | sed -e 's/ /, /g')
echo "Select a DNS server for the client:"
echo " 1) Current system resolvers | $system_dns"
echo " 2) 8.8.8.8, 8.8.4.4 | Google"
echo " 3) 1.1.1.1, 1.0.0.1 | WARP "
echo " 4) 208.67.222.222, 208.67.220.220 | OpenDNS"
echo " 5) 9.9.9.9, 149.112.112.112 | Quad9"
echo " 6) 94.140.14.14, 94.140.15.15 | AdGuard"
echo " 7) Enter custom resolvers"
read -p "DNS server [1]: " dns
until [[ -z "$dns" || "$dns" =~ ^[1-7]$ ]]; do
echo "$dns: invalid selection."
read -p "DNS server [1]: " dns
done
# DNS
case "$dns" in
1|"")
dns=$system_dns
;; ;;
2) 2)
dns="8.8.8.8, 8.8.4.4" dns="8.8.8.8, 8.8.4.4"
@ -138,8 +140,8 @@ new_client_dns () {
# Read from the command line, check the format is valid before exiting loop. # Read from the command line, check the format is valid before exiting loop.
while [[ 1 ]]; do while [[ 1 ]]; do
read -p "Enter custom dns resolvers (e.g. '1.1.1.1, 1.0.0.1'): " dns read -p "Enter custom dns resolvers (e.g. '1.1.1.1, 1.0.0.1'): " dns
[[ "$dns" =~ ^([0-9]{1,3}[\.]){3}[0-9]{1,3}\,\ ([0-9]{1,3}[\.]){3}[0-9]{1,3}$ ]] && break [[ "$dns" =~ ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ ]] && break
echo "dns '$dns' incompatible format." echo "dns '$dns' invalid."
done done
;; ;;
esac esac
@ -180,7 +182,7 @@ new_network () {
while [[ 1 ]]; do while [[ 1 ]]; do
read -p "Enter custom network prefix (e.g. '192.168.1'): " network read -p "Enter custom network prefix (e.g. '192.168.1'): " network
[[ "$network" =~ ^([0-9]{1,3}[\.]){2}[0-9]{1,3}$ ]] && break [[ "$network" =~ ^([0-9]{1,3}[\.]){2}[0-9]{1,3}$ ]] && break
echo "Network '$network' incompatible format." echo "Network '$network' invalid. Note: only 3 subnets, not 4! (e.g. a.b.c)"
done done
;; ;;
esac esac