InicioLinuxNetstat en shellscript
Netstat en shellscript


Buenas! Hace un rato me meti a mi router(que corre dd-wrt), y me di cuenta de que no tenia el comando netstat. Por esto, y porque no tenia ganas de estudiar, me puse a hacer este script que muestra ip dest/src y port dest/src de cada conexion tcp que este establecida. Sin mas, el script en cuestion:


#!/bin/sh


parse_num()
{
    x=$(echo $1 | sed -n 's/0*//p')
    if [ $(echo $x | wc -c) -eq 1 ]
    then
        x=0
    fi
    echo $x
}


hex_to_ip()
{
    index=7
    output=''
    while [ $index -gt 0 ] 
    do
        end=$(expr $index + 1)
        value=$(printf "%d" "0x$(parse_num $(echo $1 | cut -b $index-$end))")
        output="$output.$value"
        index=$(expr $index - 2)
    done
    echo $(echo $output | cut -b 2-)
}
printf "         Src IP  Src port          Dst IP  Dst portn"

cat /proc/net/tcp | while read line; do
    srcip=$(hex_to_ip $(echo $line | sed -n 's/^[0-9]*: //p' | sed 's/:.*//p'))
    srcport=$(printf "%d" 0x$(parse_num $(echo $line | sed  -n 's/^ *[0-9]*: [0-9,A-F]*://p' | cut "-d " -f 1)))
    dstip=$(hex_to_ip $(echo $line | sed -n 's/^[0-9]*: [0-9,A-F]*:[0-9,A-F]* //p' | sed -n 's/:.*//p'))
    dstport=$(printf "%d" 0x$(parse_num $(echo $line | sed -n 's/^ *[0-9]*: [0-9,A-F]*:[0-9,A-F]* [0-9,A-F]*://p' | cut "-d " -f1)))
    
    printf "%15s %9s %15s %9sn" $srcip $srcport $dstip $dstport
done



Aca una muestra de como funciona.




Lo empece haciendo para bash, pero como mi router no tenia ese interprete, termine pasandolo a sh para que sea mas portable .

Para descargarlo, click aca

Saludos!
Datos archivados del Taringa! original
10puntos
669visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
11visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

a
adadon🇦🇷
Usuario
Puntos0
Posts5
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.