如何以编程方式检查PC是否使用Python和/或Ruby进行互联网连接?

时间:2013-05-14 20:52:32

标签: python ruby pc

我有Python和Ruby的脚本,一次运行几天,依靠互联网转到某些域并收集数据。有没有办法在我的脚本中实现网络连接检查,以便在没有连接时暂停/重试循环迭代,只在连接时重新启动?

3 个答案:

答案 0 :(得分:4)

可能有更优雅的解决方案,但我会这样做:

require 'open-uri'

def internet_connectivity?
  open('http://google.com')
  true
rescue => ex
  false
end

答案 1 :(得分:2)

在Python中我做了类似的尝试,除了以下块之外:

import requests

try:
    response = requests.get(URL)
except Exception as e:
    print "Something went wrong:"
    print e

这只是您可以执行的操作的示例,您可以检查error_code或有关异常的一些信息,并根据您可以定义要执行的操作。当请求出错时,我通常会让脚本睡10分钟。

import time
time.sleep(600)

答案 2 :(得分:1)

这是一个特定于unix的解决方案:

In [18]: import subprocess

In [19]: subprocess.call(['/bin/ping', '-c1', 'blahblahblah.com'])

Out[19]: 1

In [20]: subprocess.call(['/bin/ping', '-c1', 'google.com'])

Out[20]: 0

即,如果ping成功,ping将返回0