也许你可以使用这样的东西:
import urllib2
def internet_on():
try:
urllib2.urlopen('http://216.58.192.142', timeout=1)
return True
except urllib2.URLError as err:
return False
目前,216.58.192.142是google.com的IP地址之一。将http://216.58.192.142更改为任何可以快速响应的网站。
此固定IP不会永远映射到google.com。所以这段代码是
不稳定 – 它将需要不断的维护,以保持其工作。
上述代码使用固定IP地址而不是完全限定域名(FQDN)的原因是因为FQDN需要DNS查找。当机器没有可用的互联网连接时,DNS查找本身可以阻止对urllib_request.urlopen的调用超过一秒钟。感谢@rzetterberg指出这一点。
如果上面的固定IP地址不工作,您可以通过运行找到google.com的当前IP地址(在UNIX上)
% dig google.com +trace
...
google.com. 300 IN A 216.58.192.142