Last active
February 9, 2021 17:48
-
-
Save yurynix/e0e8e1075ef742e9084dc81013fb349f to your computer and use it in GitHub Desktop.
Reset DNS after GlobalProtect getting stuck
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
scutil_primary_output=$(scutil << EOF | |
get State:/Network/Global/IPv4 | |
d.show | |
EOF) | |
primary_interface=$(echo $scutil_primary_output | sed -n 's/.*PrimaryInterface : \([a-z0-9]*\).*/\1/p') | |
primary_service=$(echo $scutil_primary_output | sed -n 's/.*PrimaryService : \([A-Z0-9-]*\).*/\1/p') | |
#echo $primary_interface $primary_service | |
#exit; | |
#if=${1-en0} | |
default_servers=$( ipconfig getpacket $primary_interface | \ | |
perl -ne'/domain_name_server.*: \{(.*)}/ && print join " ", split /,\s*/, $1' ) | |
echo Interface: $primary_interface DNS: $default_servers | |
#first_if_scutil_dns_key_list_item=$(scutil << EOF | |
#list ".*/Service/.*/DNS" | |
#EOF) | |
#first_if_scutil_dns_key=$(echo $first_if_scutil_dns_key_list_item | sed 's/subKey \[0\] = \(.*\)/\1/') | |
first_if_scutil_dns_key="State:/Network/Service/$primary_service/DNS" | |
dns_records_in_scutil=$(scutil << EOF | |
get $first_if_scutil_dns_key | |
d.show | |
exit | |
EOF) | |
global_protect_dns_records_in_scutil=$(scutil << EOF | |
get State:/Network/Service/gpd.pan/DNS | |
d.show | |
EOF) | |
echo "$first_if_scutil_dns_key -> $dns_records_in_scutil" | |
echo "State:/Network/Service/gpd.pan/DNS -> $global_protect_dns_records_in_scutil" | |
sudo scutil << EOF | |
get $first_if_scutil_dns_key | |
d.remove ServerAddresses | |
d.add ServerAddresses * $default_servers | |
set $first_if_scutil_dns_key | |
remove State:/Network/Service/gpd.pan/DNS | |
remove State:/Network/Service/gpd.pan/IPv4 | |
exit | |
EOF |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment