Sometimes I need to download data from the internet. On occasions this has failed either because the website is down or because my computer has lost its internet connection.
The curl package has a function has_internet which tests by performing a nslookup:
curl::has_internet
## function(){
## !is.null(nslookup("google.com", error = FALSE))
## }
Testing DNS is faster and may be more reliable than retrieving a URL because the latter might fail for unrelated reasons (e.g. firewall, server down, etc).