웹사이트에 저장된 IP 정보를 정리/새로 고치는 방법은 무엇입니까?

웹사이트에 저장된 IP 정보를 정리/새로 고치는 방법은 무엇입니까?

쉘 스크립트를 사용하여 인터넷에 연결되어 있는지 확인하려고 합니다. 나는 이것을 사용하여 이것을 할 수 있다고 생각한다.평평한명령을 실행하면 ping이 성공하면 괄호 안에 IP 정보가 표시되기 때문입니다. 대괄호가 없으면 다음을 사용합니다.자르다이 명령은 특정 변수를 할당하며, 이 경우 변수는 비어 있게 됩니다.

그래서 다음 코드를 작성했습니다.

echo " First check whether internet is working or not  : "
internetCheck=$(ping -c 1 google.com | cut -s -d "(" -f1)
if [ -z "$internetCheck" ]; then 
  echo "NO INTERNET CONNECTION FOUND !"
else 
  echo "[ OK ] Internet is connected.\n"
fi

효과가 있었습니다. 그런데 연결을 끊고 같은 웹사이트(google.com)에 대해 스크립트를 반복하면 시스템(?)이 마지막 ping 명령의 결과를 기억하고 있어서 실패하게 됩니다. 이전 핑 결과를 정리/새로 고치는 방법은 무엇입니까?

답변1

더 나은 테스트, grep 필요 없음...

echo " First check whether internet is working or not  : "
if ping -q -c 1 <host> > /dev/null 2>&1 ; then
  echo "[ OK ] Internet is connected.\n"
else 
  echo "NO INTERNET CONNECTION FOUND !"
fi

답변2

이름을 IP 주소로 변환하는 작업은 일반적으로 로컬 DNS 확인자에 의해 수행되며 캐시됩니다. 그렇기 때문에 연결되어 있지 않아도 주소를 알 수 있습니다.

더 나은 옵션은 100% packet loss수정된 스크립트 버전입니다.

echo " First check whether internet is working or not  : "
if ping -c 1 google.com | grep -qE '100% packet loss|Temporary failure in name resolution' ; then 
  echo "NO INTERNET CONNECTION FOUND !"
else 
  echo "[ OK ] Internet is connected.\n"
fi

관련 정보