Por que o utilitário dig trava indefinidamente mesmo com o tempo limite especificado?

Por que o utilitário dig trava indefinidamente mesmo com o tempo limite especificado?

Estou usando digo utilitário para encontrar o endereço IP público.

O comando que usei é:

dig +short myip.opendns.com @resolver1.opendns.com

mas tive problemas porque em alguns outros computadores demorou muito, então adicionei umtempo limite após 5 segundos:

dig +short +time=5 +tries=1 myip.opendns.com @resolver1.opendns.com

e falha em alguns como esperado, mas em outros computadores nunca termina. Tudo o que faz é travar...

Alguma idéia de por que e como isso pode ser corrigido para o tempo limite após 5 segundos, conforme esperado?

EDITAR:

Já tentei timeout, mas ainda trava. Acho que trava ao resolver o DNS. Por exemplo, não posso ping www.google.com, mas posso 172.217.20.4.

Responder1

Quanto ao uso de timeouts aplicacionais em alguns utilitários, quando há problemas de conectividade, nem sempre é garantido que a aplicação irá parar por conta própria com alguma "coerção" externa.

Eu usaria um utilitário externo para eliminá-lo depois de algum tempo, apenas para garantir as situações problemáticas em que ele trava.

Como em:

timeout 5 dig +short +time=5 +tries=1 myip.opendns.com @resolver1.opendns.com

Deman timeout

NOME no topo

   timeout - run a command with a time limit

SINOPSE topo

   timeout [OPTION] DURATION COMMAND [ARG]...
   timeout [OPTION]

DESCRIÇÃO topo

   Start COMMAND, and kill it if still running after DURATION.

informação relacionada