Netstat et variables [Résolu] - Forum Shell

A voir également:Netstat et variablesNetstat - Articles Variable environnement windows - Articles Php variable globale ✓ - Forum - PHP Vba range avec variable ✓ - Forum - VB / VBA Variable c++ - Articles

Bonjour,

Sur ma Dedibox, je voudrais traiter chaque résultat renvoyé par la commande netstat que voici :



1) Quelle boucle choisir ?
2) Comment récupérer les adresses ip et les ports dans des variables ?

Merci d'avance pour votre aide.


Configuration: Win 7 Pro SP1 64bits
Athlon X4 750K Quad Core
8 Go DDR3 1866 Mhz

Forum

A voir également:Netstat et variablesNetstat - Articles Variable environnement windows - Articles Php variable globale ✓ - Forum - PHP Vba range avec variable ✓ - Forum - VB / VBA Variable c++ - Articles

Web: www.shapebootstrap.net

4 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,
Je ferais un truc du genre :

netstat -nla | grep "ESTABLISHED" | while read a b c d e f ; do IP=$(echo $e |cut -d: -f1 ); PORT=$(echo $e |cut -d: -f2 );echo $PORT-$IP; done


---
Trauqnej

Reply
réponses:
  • auteur

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

salut,

il faut être plus précis sur ce que tu veux faire.

de toute façon, laisse tomber le shell, tous ces pipes prennent beaucoup de temps.
passe directement à

awk
:
netstat ... | awk '/ESTABLISHED/ && /163\.172\....\..../{ là, tu fais tes trucs avec $3 et $4 }'

Reply
réponses:
  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

  • auteur

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Toujours pas moyen d'afficher mes paste_key à l'aide de la boucle.

#! /bin/bash  # je crée une variable contenant mes identifiants pour l'API Pastebin pastebin='--max-time 30 --tlsv1.2 -s -d "api_dev_key=ef2fbf05c23084e16a3exxxxxxxxxxxx" -d "api_user_key=0a9cde34c5664632dc8cxxxxxxxxxxxx"'  # je boucle pour récupérer la liste de mes paste_key for key in $( curl ${pastebin} -d "api_option=list" "https://pastebin.com/api/api_post.php" | grep -Po '<paste_key>\K[^<]*' )  do echo "$key" done  sleep 2 


Pourtant si je tape la commande curl directement dans le terminal j'obtiens bien la liste voulue.


“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”

Reply
réponses:
  • auteur

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Voilà mon script est terminé, je peux passer le sujet en "résolu" :

#! /bin/bash  # je définis les paramètres de cURL opts='-s --max-time 30 --tlsv1.2'  # je définis l'API à utiliser api=https://pastebin.com/api/api_post.php  # je crée une variable contenant mes identifiants pour l'API Pastebin pastebin='-d api_dev_key=ef2fbf05c23084e16a3exxxxxxxxxxxx -d api_user_key=0a9cde34c5664632dc8cxxxxxxxxxxxx'  # je boucle pour récupérer la liste de mes paste_key publiques for key in $( curl $opts $pastebin -d api_option=list $api | grep -Po '<paste_key>\K[^<]*' | grep -v "AhNgsVqW" | grep -v "KuJgybEd" ) do         status=0          # je récupère l'adresse ip et le port         ip=$(curl $opts "https://pastebin.com/raw/$key" |cut -d: -f1 -s)         port=$(curl $opts "https://pastebin.com/raw/$key" |cut -d: -f2 -s)          # je temporise au cas où le tunnel ne serait pas totalement établi         sleep 30          # je compare le pastebin avec les tunnels existants         netstat -nt4 | grep "163.172.xxx.xxx:22" | grep "$ip" && status=$((status+1))         netstat -nt4 | grep "127.0.0.1" | grep "$port" && status=$((status+1))          # si le pastebin est obsolète, je le supprime         if [ $status -lt 2 ]         then                 curl $opts $pastebin -d api_paste_key=$key -d api_option=delete $api         fi done


Merci à tous les trois pour votre aide, je vous souhaite une excellente journée.


“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”

Reply
réponses:
  • auteur

  • auteur

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed