Cómo hacer un tracert y guardar los resultados en fichero CSV de todas las IP de nuestra red. Usaremos la aplicación PingInfoView para obtener las IP de un rango, LibreOffice Calc para volcar los resultados, Notepad para obtener sólo las IP y un script de PowerShell para hacer el tracert a cada IP y guardar los resultados en fichero CSV.
- Obtener todas las IP de un rango sin formato con PingInfoView, LibreOffice Calc y Notepad.
- Script PowerShell para hacer el tracert y guardar los resultados en fichero csv.
- Ejecutar script PowerShell para hacer un traceroute tracert de un rango de IP y guardar los resultados en CSV.
- Analizar el fichero CSV resultante del traceroute.
Obtener todas las IP de un rango sin formato con PingInfoView, LibreOffice Calc y Notepad
En primer lugar descargaremos la herramienta gratuita PingInfoView, desde su web oficial:
No necesita instalación, descomprimiremos el fichero pinginfoview.zip y ejecutaremos el fichero:
PingInfoView.exe
Agregaremos la lista de IP o bien un rango, por ejemplo:
192.168.1.0/24
Y pulsaremos «OK»:
La herramienta obtendrá todas las IP de dicho rango, es lo único que necesitamos. No necesitamos los datos del ping ni nada más que obtenga esta aplicación. Seleccionaremos todos los registros obtenidos y pulsaremos en «Copy Selected Items»:
Si no tenemos más rangos de IP a analizar podremos cerrar esta herramienta.
Abriremos LibreOffice Calc o Microsoft Office Excel y pegaremos los datos copiados (que van en formato CSV):
Tanto LibreOffice Calc como Microsoft Office Excel reconocerán el formato CSV de PingInfoView, por lo que reconocerán las columnas de datos y las separarán. En la segunda columna, la de IP Address, la seleccionaremos y elegiremos el tipo de datos «Texto» (así no intenta convertir las IP a tipo numérico). Pulsaremos «Aceptar» para importar los datos:
Copiaremos sólo la columna IP Address:
Abriremos un Bloc de notas y pegaremos los valores copiados. Quitaremos la primera fila que contiene el nombre de la columna (quitaremos «IP Address»):
Guardaremos las IP del rango en una carpeta con formato de texto plano (txt):
Script PowerShell para hacer el tracert y guardar los resultados en fichero csv
El script PowerShell completo será el siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# Uso: .\tracert_full.ps1 .\IP_Destino.txt .\IP_Origen.txt # Obtenemos los parámetros [CmdletBinding()] param ( [parameter(Mandatory=$true)] [string]$ficheroIPDestino, [parameter(Mandatory=$true)] [string]$ficheroIPOrigen ) $destinos = get-content -path $ficheroIPDestino | foreach{ $_.Trim() } $origen = get-content -Path $ficheroIPOrigen | foreach{ $_.Trim() } #Generamos el encabezado del fichero CSV en el que se guardarán los datos $encabezadoCSV = New-Object -Type PSObject Add-Member -InputObject $encabezadoCSV -MemberType NoteProperty -Name Source -value "" Add-Member -InputObject $encabezadoCSV -MemberType NoteProperty -Name Server -value "" Add-Member -InputObject $encabezadoCSV -MemberType NoteProperty -Name State -value "" Add-Member -InputObject $encabezadoCSV -MemberType NoteProperty -Name ComputerName -value "" Add-Member -InputObject $encabezadoCSV -MemberType NoteProperty -Name RemoteAddress -value "" Add-Member -InputObject $encabezadoCSV -MemberType NoteProperty -Name SourceAddress -value "" Add-Member -InputObject $encabezadoCSV -MemberType NoteProperty -Name PingSucceeded -value "" Add-Member -InputObject $encabezadoCSV -MemberType NoteProperty -Name TraceRoute -value "" #Recorremos cada IP del fichero origen y le aplicamos un tarcert, guardando el resultado en el fichero CSV foreach ($destino in $destinos) { $ruta = Test-NetConnection $destino –TraceRoute -Hops 10 | Select-Object -Property ComputerName,RemoteAddress,SourceAddress,PingSucceeded,TraceRoute foreach($dat in $ruta) { $salidaCSV = New-Object -Type PSObject $salidaCSV | Add-Member –MemberType NoteProperty –Name Source –Value $origen $salidaCSV | Add-Member –MemberType NoteProperty –Name Server –Value $destino $salidaCSV | Add-Member –MemberType NoteProperty –Name State –Value "Up" $salidaCSV | Add-Member –MemberType NoteProperty –Name ComputerName –Value $($dat.ComputerName) $salidaCSV | Add-Member –MemberType NoteProperty –Name RemoteAddress –Value $($dat.RemoteAddress) $salidaCSV | Add-Member –MemberType NoteProperty –Name SourceAddress –Value $($dat.SourceAddress) $salidaCSV | Add-Member –MemberType NoteProperty –Name PingSucceeded –Value $($dat.PingSucceeded) $salidaCSV | Add-Member –MemberType NoteProperty –Name TraceRoute –Value $($dat.TraceRoute -join(',')) $salidaCSV | export-csv -append -path resultado_tracert.csv -force -Delimiter ";" } } |
Guardaremos el código PowerShell anterior en un fichero llamado tracert_full.ps1 y lo tendremos listo para ejecutarlo.
Ejecutar script PowerShell para hacer un traceroute tracert de un rango de IP y guardar los resultados en CSV
En la carpeta donde hemos guardado el fichero con las IP, copiaremos el fichero tracert_full.ps1 creado anteriormente. En esta misma carpeta crearemos también un fichero llamado IP_Origen.txt que contendrá únicamente la IP origen (la IP del equipo en el vamos a ejecutar el script). Esta IP es meramente informativa, para guardarse en el fichero CSV resultante:
En resumen, en la carpeta tendremos:
- Un fichero .txt con la lista de IP a escanear. En nuestro caso llamado 192.168.1.0.txt.
- Un fichero .txt con la IP origen, con el nombre IP_Origen.txt.
- El fichero del script PowerShell tracert_full.ps1.
Abriremos una ventana de PowerShell en el equipo origen desde el que queremos hacer el escaneo, y accederemos a la carpeta donde se encuentran los ficheros:
cd .\ProyectoA_Tracert\192.168.1.0
Ejecutaremos el script PowerShell pasándole como parámetros el fichero de las IP destino y el fichero de la IP origen:
1 |
.\tracert_full.ps1 .\192.168.1.0.txt .\IP_Origen.txt |
Si todo es correcto, se iniciará el proceso de traceroute en todas las IP del fichero de IP destino. El proceso puede tardar varios minutos, en función del número de direcciones IP del a red y de la velocidad. Esperaremos a que concluya. Puede que muestre alguna advertencia, de IP inalcanzables por ejemplo:
Analizar el fichero CSV resultante del traceroute
Una vez finalizado el proceso:
En la misma carpeta nos habrá generado el fichero resultado_tracert.csv que podemos abrir con LibreOffice Calc, con Excel o con el Bloc de notas.
Si lo abrimos con LibreOffice Calc, para que nos separe las columnas, podremos analizar el resultado
Nos mostrará todos los datos recabados por el traceroute, por cada IP analizada nos mostrará el estado,
El dato más importante de este fichero será la columna «TraceRoute» que nos habrá guardado todos los caminos que se han seguido para alcanzar la IP destino (todas las rutas):