<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _discover(**kwargs):
 """Yields info about station servers announcing themselves via multicast."""

  query = station_server.MULTICAST_QUERY
  for host, response in multicast.send(query, **kwargs):
    try:
      result = json.loads(response)
    except ValueError:
      _LOG.warn('Received bad JSON over multicast from %s: %s', host, response)
    try:
      yield StationInfo(result['cell'], host, result['port'],
                        result['station_id'], 'ONLINE',
                        result.get('test_description'),
                        result['test_name'])
    except KeyError:
      if 'last_activity_time_millis' in result:
        _LOG.debug('Received old station API response on multicast. Ignoring.')
      else:
        _LOG.warn('Received bad multicast response from %s: %s', host, response)