[Linux] : recenser les ports en écoute sans netstat et LSOF

Hier nous avions vu comment lister les ports en écoute sur une machine en utilisant netstat ou lsof. Aujourd’hui nous allons faire la même chose sans binaire ah ah ah.

Bien sûr c’est nettement moins facile il va falloir fouiller dans les données du système. En l’occurence nous allons fouillé dans /proc/net/tcp car c’est bien le protocole tcp qui nous intéresse.

La difficulté réside simplement dans le fait que les données sont en hexadécimales et il faut donc les convertir en décimale. Voici donc la ligne de commande que je vous propose :

array=($(tail -n +2 /proc/net/tcp | cut -d ":" -f "3" | cut -d " " -f "1")) && for port in ${array[@]}; do echo $((0x$port)); done

Donc :

  • on fait un tail pour virer l’entête
  • un premier cut avec pour séparaateur « : » et on garde la 3ème colonne
  • un deuxième cut avec pour séparateur un espace  »  » et on garde la première colonne
  • pour tous les éléments recueillis on convertit l’hexadécimal en décimal.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s