public IEnumerable <string> Trace(string address, int maxHops = 30) { foreach (var line in tracer.GetOutputAndAdresses(address, maxHops)) { Console.WriteLine(line); var gotIp = tracer.TryParseIP(line, out var parsedAddress); if (!gotIp) { Program.Log.Info($"Line \"{line}\" did not match"); continue; } Program.Log.Info($"Got \"{parsedAddress}\" from \"{line}\""); var requestForInfoResult = infoProvider.GetAdressInfo(parsedAddress); if (requestForInfoResult.IsSuccess) { yield return(requestForInfoResult.Value.ToString()); } else { yield return(requestForInfoResult.Error); } } }