#get the fastest github ip
github_ip=`curl https://github.com.ipaddress.com/#ipinfo 2>/dev/null| grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" |sed -n '2p'`;
echo $github_ip;
fast_ip=`curl https://fastly.net.ipaddress.com/github.global.ssl.fastly.net#ipinfo 2>/dev/null| grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" |sed -n '2p'`;
echo $fast_ip;
#Add or replace the $github_ip in /etc/hosts
if grep "github.com" /etc/hosts >/dev/null;then
echo "github dns exists, replace it with the latest one $github_ip";
sed -i -e "s|[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\} *github\.com|$github_ip github\.com|" /etc/hosts;
else
echo "github dns does not exist, replace it with the latest one $github_ip";
echo -e "\n#Github\n$github_ip github.com\n" >> /etc/hosts;
fi
#Add or replace the $fast_ip in /etc/hosts
if grep "github.global.ssl.fastly.net" /etc/hosts >/dev/null;then
echo "github.global dns exists, replace it with the latest one $fast_ip";
sed -i -e "s|[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\} *github\.global\.ssl\.fastly\.net|$fast_ip github\.global\.ssl\.fastly\.net|" /etc/hosts;
else
echo "github.global dns does not exist, replace it with the latest one $fast_ip";
echo -e "\n#github.global.ssl.fastly.net\n$fast_ip github.global.ssl.fastly.net\n" >> /etc/hosts;
fi
killall -HUP mDNSResponder;say DNS cache has been flushed;