当前位置: 首页 > 面试题库 >

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

裴韬
2023-03-14
问题内容

我有以下代码检查是否存在Internet连接。

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秒。


问题答案:

我的方法是这样的:

import socket
REMOTE_SERVER = "one.one.one.one"
def is_connected(hostname):
  try:
    # see if we can resolve the host name -- tells us if there is
    # a DNS listening
    host = socket.gethostbyname(hostname)
    # connect to the host -- tells us if the host is actually
    # reachable
    s = socket.create_connection((host, 80), 2)
    s.close()
    return True
  except:
     pass
  return False
%timeit is_connected(REMOTE_SERVER)
> 10 loops, best of 3: 42.2 ms per loop

如果没有连接(OSX,Python 2.7),它将在不到一秒钟的时间内返回。

注意:此测试可能会返回误报-
例如,DNS查找可能会返回本地网络中的服务器。为确保您已连接到Internet并与有效的主机通信,请确保使用更复杂的方法(例如SSL)。



 类似资料:
  • 进行与互联网间的连接测试,并显示结果。 名称* 目前使用的互联网连接之连接名称 SSID* 接入点的SSID 获取IP地址 显示是否可获取IP地址 互联网连接 显示是否可与互联网连接 登陆PlayStation®Network 显示是否能登陆PlayStation®Network NAT类型 显示PS Vita与互联网的连接方式 使用游戏的通信功能等时,可确认与其它PS Vita间的连接稳定性。

  • 问题内容: 如何通过开发机上运行的PHP脚本检查是否已连接到互联网? 我运行脚本以使用wget下载一组文件(可能存在或可能不存在)。如果我在没有连接的情况下尝试下载,则wget会继续进行下一个下载,认为文件不存在。 问题答案:

  • 问题内容: 是否有Apple框架捆绑包来检测是否存在互联网连接?当前,当我的应用程序尝试在没有互联网连接的情况下对用户的位置进行地理位置定位时会崩溃。 我对Swift和ios编程有些陌生-抱歉。 问题答案: 这不是一个完善的网络检查库,但是我发现了这种简单的方法来检查网络可用性。我设法将其翻译为Swift,并在这里完成了最终代码。 它适用于3G和WiFi连接。我还通过一个工作示例将其上传到了我的G

  • 问题内容: 我想看看是否有人在使用Java时有一种简单的方法来检测是否存在Internet连接。当前的应用程序在Windows的WinInit DLL中使用了“InternetGetConnectedState”方法,但是我的应用程序需要跨平台才能进行Mac操作,并且这种方法将无法使用。我完全不知道JNI可以在Java中使用DLL,它很快变得令人沮丧。 我唯一想到的方法是尝试打开与网站的URL连接

  • 若要使用PS Vita与互联网连接,需先准备无线通信的环境。 若您的住家等地无法通过无线通信,可使用公众无线LAN服务(Hotspot)在公众场所与互联网连接。 公众无线LAN服务的使用方法与费用会因该服务的提供者而异。详细请询问该服务的提供者。 使用Wi-Fi连接 若要使用Wi-Fi与互联网连接,需准备以下内容。此外,接入点的设定通常会通过电脑进行。 与网络服务商签订合约 接入点或无线路由器 接

  • 可确认目前连接的接入点信息或网络的连接状态。