Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/08/2014, à 20:00

xana02

ecoute port tcp sortie dans une variable avec NC

Bonjour, j'essaye de récupérer la sortie du logiciel NC ( netcat ) pour l'utiliser dans une variable . mais tant que NC na pas fini d'écouter le programme ne va pas a la suite

Je cherche un moyen d'écouter un port et de récupéré la résultat dans une variable . Y a t'il moyens de dire a NC de d’écouter qu'une ligne et de s’arrêter

echo En attente
var=$(nc -l -p 7879)
echo $var

Merci

Dernière modification par xana02 (Le 25/08/2014, à 20:00)

Hors ligne

#2 Le 25/08/2014, à 20:19

jplemoine

Re : ecoute port tcp sortie dans une variable avec NC

pour des plugins nagios, j'utilise

nc <adresse IP> <port d'écoute>

Ça rend la main immédaitement


Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.

Hors ligne

#3 Le 25/08/2014, à 20:28

pingouinux

Re : ecoute port tcp sortie dans une variable avec NC

Bonsoir,
Je n'utilse pas nc, mais le man dit que c'est une erreur d'utiliser simultanément -l et -p. En voici un extrait :

-l      Used to specify that nc should listen for an incoming connection
             rather than initiate a connection to a remote host.  It is an
             error to use this option in conjunction with the -p, -s, or -z
             options.  Additionally, any timeouts specified with the -w option
             are ignored.
     -p source_port
             Specifies the source port nc should use, subject to privilege
             restrictions and availability.  It is an error to use this option
             in conjunction with the -l option.

Sinon, pour arrêter une commande après la 1ère ligne de sortie :

commande | sed -r '/^.+$/q'

Ajouté : Ou bien

commande | sed -r '/^$/!q'

Dernière modification par pingouinux (Le 26/08/2014, à 04:07)

Hors ligne

#4 Le 25/08/2014, à 20:37

jplemoine

Re : ecoute port tcp sortie dans une variable avec NC

Pas besoin du sed : il suffit de prendre la commande donnée au post #2.
Je l'utilise pour récupérer les températures des disques durs...


Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.

Hors ligne

#5 Le 25/08/2014, à 20:57

pingouinux

Re : ecoute port tcp sortie dans une variable avec NC

@jplemoine : C'était un exemple qui peut servir dans d'autres cas. Dans ce cas précis, ta commande est plus simple.

Hors ligne

#6 Le 25/08/2014, à 21:00

jplemoine

Re : ecoute port tcp sortie dans une variable avec NC

oui. Je n'avais pas pensé à ça : je suis en peu fatigué ce soir : ça fait 2 fois que je suis à coté de la plaque...
Je vais arrêter de poster sur le forum pour ce soir...

Dernière modification par jplemoine (Le 25/08/2014, à 21:00)


Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.

Hors ligne

#7 Le 25/08/2014, à 21:07

xana02

Re : ecoute port tcp sortie dans une variable avec NC

Humm je sais pas si c'est le clients ou le serveur qui va pas

J'ai essayé nc monip 7879

j'ai un retour a la ligne et je reçois rien  .

Si vous préféré j'ai un clients qui m'envoie des messages sur le 7879 en permanence .

je ne peux pas utiliser nc -p 7879 ,  sans -l cela ne fonctionne pas ..


J'ai essayé avec commande | sed -r '/^.+$/q' cela fonctionne .

j'aurais bien voulus avec NC tout cour mais fonctionne pas ...

Dernière modification par xana02 (Le 25/08/2014, à 21:16)

Hors ligne

#8 Le 26/08/2014, à 12:02

Pseudo supprimé

Re : ecoute port tcp sortie dans une variable avec NC

nc -z est plus facile à traiter

echo "example.com, hostname, IP à sonder ?"; read target; for i in 22 80 443 25 587 465 143 993 110 995; do nc -w 1 -i 1 -z $target $i ; if [ "$?" -eq 0 ]; then echo "$i est accessible"; else echo "$(date +%H:%M:%S) $i est inaccessible"; fi; done