COT:
- Utilisation de bash et
timeout
- En utilisant
nc
- Commander
- RHEL 6 (nc-1.84)
- RHEL 7 (nmap-ncat-6.40)
- Remarques
Utilisation de bash et timeout
:
Notez que timeout
devrait être présent avec RHEL 6+, ou se trouve alternativement dans GNU coreutils 8.22. Sur MacOS, installez-le en utilisant brew install coreutils
et utilisez-le en tant que gtimeout
.
Commander:
$ timeout $TIMEOUT_SECONDS bash -c "</dev/tcp/${HOST}/${PORT}"; echo $?
Si vous paramétrez l'hôte et le port, assurez-vous de les spécifier tels quels ${HOST}
et ${PORT}
comme ci-dessus. Ne les spécifiez pas simplement comme $HOST
et $PORT
, c'est-à-dire sans les accolades; cela ne fonctionnera pas dans ce cas.
Exemple:
Succès:
$ timeout 2 bash -c "</dev/tcp/canyouseeme.org/80"; echo $?
0
Échec:
$ timeout 2 bash -c "</dev/tcp/canyouseeme.org/81"; echo $?
124
Si vous devez conserver le statut de sortie de bash
,
$ timeout --preserve-status 2 bash -c "</dev/tcp/canyouseeme.org/81"; echo $?
143
En utilisant nc
:
Notez qu'une version incompatible en amont de nc
est installée sur RHEL 7.
Commander:
Notez que la commande ci-dessous est unique en ce qu'elle est identique pour RHEL 6 et 7. Ce sont juste l'installation et la sortie qui sont différentes.
$ nc -w $TIMEOUT_SECONDS -v $HOST $PORT </dev/null; echo $?
RHEL 6 (nc-1.84):
Installation:
$ sudo yum install nc
Exemples:
Succès:
$ nc -w 2 -v canyouseeme.org 80 </dev/null; echo $?
Connection to canyouseeme.org 80 port [tcp/http] succeeded!
0
Échec:
$ nc -w 2 -v canyouseeme.org 81 </dev/null; echo $?
nc: connect to canyouseeme.org port 81 (tcp) timed out: Operation now in progress
1
Si le nom d'hôte est mappé sur plusieurs adresses IP, la commande défaillante ci-dessus fera défiler la plupart ou la totalité d'entre elles. Par exemple:
$ nc -w 2 -v microsoft.com 81 </dev/null; echo $?
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
nc: connect to microsoft.com port 81 (tcp) timed out: Operation now in progress
1
RHEL 7 (nmap-ncat-6.40):
Installation:
$ sudo yum install nmap-ncat
Exemples:
Succès:
$ nc -w 2 -v canyouseeme.org 80 </dev/null; echo $?
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connected to 52.202.215.126:80.
Ncat: 0 bytes sent, 0 bytes received in 0.22 seconds.
0
Échec:
$ nc -w 2 -v canyouseeme.org 81 </dev/null; echo $?
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connection timed out.
1
Si le nom d'hôte est mappé sur plusieurs adresses IP, la commande défaillante ci-dessus fera défiler la plupart ou la totalité d'entre elles. Par exemple:
$ nc -w 2 -v microsoft.com 81 </dev/null; echo $?
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connection to 104.43.195.251 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 23.100.122.175 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 23.96.52.53 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection to 191.239.213.197 failed: Connection timed out.
Ncat: Trying next address...
Ncat: Connection timed out.
1
Remarques:
L' argument -v
( --verbose
) et la echo $?
commande sont bien sûr à titre d'illustration uniquement.