public void TrabajoTelnet() { try { TcpClient tc = new TcpClient(IpRecolectada, 23); var c = Login("Login", "Password", 1000, tc); if (c.Split('\n')[2].Contains("Login")) { Console.WriteLine("*************************\nHilo : " + HiloIndex.ToString() + " \n" + "IP : " + IpRecolectada + " \n" + " Conexion Establecida con exito!.\n" + "*************************"); WriteLine("onu status", tc); System.Threading.Thread.Sleep(1000); WriteLine("yes", tc); Console.WriteLine("*************************\nHilo : " + HiloIndex.ToString() + " \n" + "IP : " + IpRecolectada + " \n" + " Recopilando posiciones.\n" + "*************************"); List <string> Posiciones = new List <string>(); System.Threading.Thread.Sleep(1000); bool TerminoDeCarga = false; string PrimeraLista = ""; while (!TerminoDeCarga) { PrimeraLista = Read(tc); if (PrimeraLista.Contains("dBm") || PrimeraLista.Contains("=====")) { TerminoDeCarga = true; break; } else { if (PrimeraLista != "") { Console.WriteLine("*************************\nHilo : " + HiloIndex.ToString() + " \n" + "IP : " + IpRecolectada + " \n" + PrimeraLista + "\n*************************"); } System.Threading.Thread.Sleep(10000); } } List <string> ListPrimeraLista = PrimeraLista.Split('\n').ToList(); foreach (string po in ListPrimeraLista) { if (po.Contains("dBm")) { Posiciones.Add(po); } } WriteLine("a", tc); System.Threading.Thread.Sleep(5000); string SegundaLista = Read(tc); List <string> ListSegundaLista = SegundaLista.Split('\n').ToList(); foreach (string po in ListSegundaLista) { if (po.Contains("dBm")) { Posiciones.Add(po); } } Console.WriteLine("*************************\nHilo : " + HiloIndex.ToString() + " \n" + "IP : " + IpRecolectada + " \n" + "Posiciones Recopiladas con exito - Total = " + Posiciones.Count.ToString() + "\n*************************"); List <ObjetoPosiciones> objpo = new List <ObjetoPosiciones>(); foreach (string Po in Posiciones) { string line = Po.Replace("\r", "").Replace("dBm", ""); var cline = line.Split(' ').ToList().Where(x => x != "").ToList(); objpo.Add(new ObjetoPosiciones { ID = cline[0], Onu = cline[1], OperStatus = cline[2], ConfigState = cline[3], DownloadState = cline[4], Tx = cline[5], Rx = cline[6], KM = cline[7], OnuStatus = cline[8], State = cline[9] }); } List <ObjScaner> objScan = new List <ObjScaner>(); Console.WriteLine("*************************\nHilo : " + HiloIndex.ToString() + " \n" + "IP : " + IpRecolectada + " \n" + "Inicia Iteracion de posiciones (on status xxxxx port eth 1)" + "\n*************************"); int PosicionNumber = 0; foreach (ObjetoPosiciones Po in objpo) { Console.WriteLine("*************************\nHilo : " + HiloIndex.ToString() + " \n" + "IP : " + IpRecolectada + " \n" + " Posicion " + Po.Onu + " - Numero : " + (PosicionNumber + 1) + " De : " + Posiciones.Count.ToString() + " - Hora Log : " + DateTime.Now.ToString("HH:mm:ss") + "\n*************************"); WriteLine("onu status " + Po.Onu + " port eth 1", tc); System.Threading.Thread.Sleep(1000); string RespuestaComandoFinal = Read(tc).Replace("\r", "").Replace("\t", ""); var ParametrosNecesarios = RespuestaComandoFinal.Split('\n').Where(x => x.Contains("Configured Auto-Detection") || x.Contains("Administrative State") || x.Contains("Operational State") || x.Contains("Connection Type")).ToList(); objScan.Add(new ObjScaner { Onu = Po.Onu , ConfiguredAutoDetection = (ParametrosNecesarios.Count > 0 ? ParametrosNecesarios[0].Replace("Configured Auto-Detection", "").Replace(" ", "") : "Data no disponible") , AdministrativeState = (ParametrosNecesarios.Count > 0 ? ParametrosNecesarios[1].Replace("Administrative State", "").Replace(" ", "") : "Data no disponible") , OperationalState = (ParametrosNecesarios.Count > 0 ? ParametrosNecesarios[2].Replace("Operational State", "").Replace(" ", "") : "Data no disponible") , ConnectionType = (ParametrosNecesarios.Count > 0 ? ParametrosNecesarios[3].Replace("Connection Type", "").Replace(" ", "") : "Data no disponible") }); PosicionNumber++; } StringBuilder sbOutput = new StringBuilder(); sbOutput.AppendLine("ID,Onu,OperStatus,ConfigState,DownLoadState,TX,RX,KM,OnuState,State,ConfiguredAutoDetection,AdministrativeState,OperationalState,ConnectionType"); foreach (ObjetoPosiciones Po in objpo) { ObjScaner scan = objScan.Find(x => x.Onu == Po.Onu); sbOutput.AppendLine(Po.ID + "," + Po.Onu + "," + Po.OperStatus + "," + Po.ConfigState + "," + Po.DownloadState + "," + Po.Tx + "," + Po.Rx + "," + Po.KM + "," + Po.OnuStatus + "," + Po.State + "," + scan.ConfiguredAutoDetection + "," + scan.AdministrativeState + "," + scan.OperationalState + "," + scan.ConnectionType); } File.WriteAllText(@"C:\Archivo_" + IpRecolectada.Replace(".", "_") + ".csv", sbOutput.ToString()); Console.WriteLine("********************************************\n********************************************\nHilo : " + HiloIndex.ToString() + " \n" + "IP : " + IpRecolectada + " \n" + "Archivo guardado en " + @"C:\Archivo_" + IpRecolectada.Replace(".", "_") + ".csv\n********************************************\n********************************************"); //Console.WriteLine("********************************************\n********************************************\nHilo : " + HiloIndex.ToString() + " \n" + "IP : " + IpRecolectada + " \n" + "Terminado - Precione Enter para continuar ... \n********************************************\n********************************************"); Console.ReadLine(); } } catch (Exception ex) { Console.WriteLine("********************************************\n********************************************\nHilo : " + HiloIndex.ToString() + " \n" + "IP : " + IpRecolectada + " \n" + "Ocurrio un error Message : " + ex.Message + "\n - Inner : " + ex.InnerException + "\n********************************************\n********************************************"); //Console.WriteLine("********************************************\n********************************************\nHilo : " + HiloIndex.ToString() + " \n" + "IP : " + IpRecolectada + " \n" + "Precione Enter para continuar ingresar una nueva IP \n********************************************\n********************************************"); Console.ReadLine(); } }