Estoy usando dig
una utilidad para encontrar una dirección IP pública.
El comando que utilicé es:
dig +short myip.opendns.com @resolver1.opendns.com
pero tuve un problema ya que en otras computadoras tomó mucho tiempo, así que agregué untiempo de espera después de 5 segundos:
dig +short +time=5 +tries=1 myip.opendns.com @resolver1.opendns.com
y en algunas falla como se esperaba, pero en otras computadoras nunca termina. Lo único que hace es colgar...
¿Alguna idea de por qué y cómo se puede solucionar esto para que se agote el tiempo de espera después de 5 segundos como se esperaba?
EDITAR:
Ya lo intenté timeout
pero todavía se cuelga. Creo que se bloquea al resolver DNS. Por ejemplo, no puedo ping www.google.com
, pero puedo 172.217.20.4
.
Respuesta1
En cuanto al uso de tiempos de espera de aplicación en algunas utilidades, cuando hay problemas de conectividad, no siempre se garantiza que la aplicación se detendrá por sí sola con alguna "coerción" externa.
Usaría una utilidad externa para eliminarlo después de un tiempo, por si acaso, para las situaciones problemáticas en las que se cuelga.
Como en:
timeout 5 dig +short +time=5 +tries=1 myip.opendns.com @resolver1.opendns.com
Deman timeout
NOMBRE arriba
timeout - run a command with a time limit
SINOPSIS arriba
timeout [OPTION] DURATION COMMAND [ARG]... timeout [OPTION]
DESCRIPCIÓN arriba
Start COMMAND, and kill it if still running after DURATION.