Estou usando dig
o 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.