dig
공용 IP 주소를 찾기 위해 유틸리티를 사용하고 있습니다 .
내가 사용한 명령은 다음과 같습니다.
dig +short myip.opendns.com @resolver1.opendns.com
하지만 다른 컴퓨터에서는 시간이 너무 오래 걸리기 때문에 문제가 있어서 다음을 추가했습니다.5초 후 타임아웃:
dig +short +time=5 +tries=1 myip.opendns.com @resolver1.opendns.com
예상대로 일부에서는 실패하지만 일부 다른 컴퓨터에서는 완료되지 않습니다. 작동이 멈추는 것 뿐입니다...
예상대로 5초 후에 시간 초과가 발생하는 이유와 방법을 아시나요?
편집하다:
이미 시도했지만 timeout
여전히 중단됩니다. DNS를 확인하는 동안 멈춘 것 같습니다. 예를 들어, 나는 할 수 없지만 ping www.google.com
할 수 있습니다 172.217.20.4
.
답변1
일부 유틸리티에서 애플리케이션 시간 초과를 사용하는 경우 연결 문제가 있을 때 애플리케이션이 외부 "강제"에 의해 자체적으로 중지된다는 보장이 항상 있는 것은 아닙니다.
문제가 있는 상황에 대비해 잠시 후 외부 유틸리티를 사용하여 종료합니다.
다음과 같이:
timeout 5 dig +short +time=5 +tries=1 myip.opendns.com @resolver1.opendns.com
에서man timeout
이름 상단
timeout - run a command with a time limit
시놉시스 상단
timeout [OPTION] DURATION COMMAND [ARG]... timeout [OPTION]
설명 상단
Start COMMAND, and kill it if still running after DURATION.