code: def value(self):
          
          # XXX This is doing a DNS lookup every time it's queried; should we
          # call gethostbyname in the constructor and ping that instead (good
          # for consistency, but what if the user *expects* the host to change
          # address?)
          with io.open(os.devnull, 'wb') as devnull:
              try:
                  subprocess.check_call(
                      ['ping', '-c1', self.host],
                      stdout=devnull, stderr=devnull)
              except subprocess.CalledProcessError:
                  return False
              else:
                  return True
docs: Returns :data:`True` if the host returned a single ping, and
          :data:`False` otherwise.