测试python中是否存在互联网连接

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

我有以下代码检查是否存在互联网连接。

import urllib2

def internet_on():
    try:
        response=urllib2.urlopen('http://74.125.228.100',timeout=20)
        return True
    except urllib2.URLError as err: pass
    return False

这将测试互联网连接,但效果如何?

我知道互联网的质量因人而异,所以我正在寻找对广谱来说最有效的东西,上面的代码似乎可能存在漏洞,人们可能会发现漏洞。例如,如果某人的连接速度非常慢,并且花了超过20秒的时间来响应。

提问于
用户回答回答于

从Python 2.6及更新版本(包括Python 3)开始,一个更简单的解决方案也将与IPv6兼容

import socket


def is_connected():
    try:
        # connect to the host -- tells us if the host is actually
        # reachable
        socket.create_connection(("www.google.com", 80))
        return True
    except OSError:
        pass
    return False

它解析名称并尝试连接到每个返回地址,然后结束它是否脱机。这还包括IPv6地址。

用户回答回答于

这会奏效

import urllib
try :
    stri = "https://www.google.co.in"
    data = urllib.urlopen(stri)
    print "Connected"
except e:
    print "not connected" ,e 

扫码关注云+社区

领取腾讯云代金券