인터넷 연결을 확인하는 Python 스크립트

Jan 23 2023
소개 이 스크립트를 사용하여 시스템 또는 네트워크의 인터넷 연결 상태를 확인합니다. 이 스크립트는 다음과 같이 인터넷이 연결되어 있는지 여부를 아는 것이 중요한 다양한 상황에서 유용할 수 있습니다. 인터넷 연결을 확인하는 Python 스크립트 이 스크립트에는 다양한 유형의 예외를 포착하고 오류를 인쇄하는 try-except 블록이 포함되어 있습니다. 해당 예외에 대한 가능한 수정 사항과 함께 메시지.

소개

이 스크립트를 사용하여 시스템 또는 네트워크의 인터넷 연결 상태를 확인합니다. 이 스크립트는 다음과 같이 인터넷이 연결되어 있는지 여부를 아는 것이 중요한 다양한 상황에서 유용할 수 있습니다.

  1. 자동화된 테스트 : 인터넷 연결이 필요한 애플리케이션에 대해 자동화된 테스트를 실행할 때 이 스크립트를 사용하여 테스트를 실행하기 전에 인터넷이 연결되어 있는지 확인할 수 있습니다. 인터넷이 연결되지 않은 경우 스크립트는 테스트 실행을 중지하고 문제를 보고할 수 있습니다.
  2. 모니터링 : 이 스크립트는 인터넷 연결을 주기적으로 확인하고 인터넷 연결이 끊긴 경우 알림 또는 경고를 보내는 데 사용할 수 있습니다. 이는 네트워크 또는 시스템에서 인터넷 연결 상태를 모니터링하는 데 유용할 수 있습니다.
  3. 진단 : 애플리케이션이나 시스템이 예상대로 작동하지 않고 인터넷 연결에 문제가 있다고 의심되는 경우 이 스크립트를 사용하여 인터넷 연결 여부를 빠르게 확인할 수 있습니다. 인터넷 연결이 끊긴 경우 스크립트는 문제에 대한 가능한 수정을 제공할 수 있습니다.
  4. 스크립팅 : 이 스크립트는 인터넷 연결 상태에 따라 프로세스를 계속하거나 중지하는 데 도움이 될 수 있는 인터넷 연결에 의존하는 더 큰 스크립트 또는 자동화 프로세스에서 사용할 수 있습니다.

인터넷 연결을 확인하는 Python 스크립트

이 스크립트에는 다양한 유형의 예외를 포착하고 해당 예외에 대한 가능한 수정 사항과 함께 오류 메시지를 인쇄하는 try-except 블록이 포함되어 있습니다.

이 스크립트에서는 라이브러리를 가져오고 메서드 sys를 사용하여 sys.exit()스크립트의 종료 상태를 설정했습니다. 이 sys.exit(0)메서드는 스크립트가 성공적으로 완료되고 인터넷이 연결되었음을 나타내는 데 사용됩니다. 이 sys.exit(1)메서드는 스크립트가 완료되었지만 인터넷이 연결되지 않았음을 나타내는 데 사용됩니다.

종료 상태는 스크립트를 실행하고 특수 쉘 변수 $?의 값을 확인하여 확인할 수 있습니다. 스크립트가 완료된 후 종료 상태로 설정됩니다. 예를 들어 스크립트가 실행되고 인터넷이 연결된 경우 $? 0이 될 것입니다. 인터넷이 연결되어 있지 않으면 $? 1이 될 것입니다.

터미널의 종료 상태를 사용하여 인터넷 연결에 따라 다른 명령을 계속 실행할지 여부를 결정할 수도 있습니다.

다음은 스크립트의 각 부분이 수행하는 작업에 대한 추가 분석입니다.

  1. import requests: requests스크립트가 웹 사이트에 HTTP 요청을 할 수 있도록 라이브러리를 가져옵니다.
  2. import socket: 예외 socket를 catch하는 데 사용되는 라이브러리를 가져옵니다 socket.timeout.
  3. import sys: sys라이브러리를 가져오면 스크립트가 시스템과 상호 작용하고 스크립트의 종료 상태를 설정할 수 있습니다.
  4. def check_internet_connectivity():: 명명된 함수가 check_internet_connectivity정의됩니다. 특정 웹사이트(이 경우 Google.com)에 접속을 시도하여 인터넷이 연결되어 있는지 확인하는 기능입니다.
  5. requests.get('http://www.google.com', timeout=5): 이 코드 줄은 www.google.com 에 GET 요청을 시도하고 성공하면 스크립트가 True를 반환하여 인터넷이 연결되었음을 나타냅니다. 매개 변수 timeout는 5초로 설정되어 있습니다. 즉, 요청을 완료하는 데 5초 이상 걸리면 예외가 socket.timeout발생합니다.
  6. except requests.ConnectionError as e:: 이 코드 블록은 requests.ConnectionError웹 사이트에 연결할 수 없을 때 발생하는 예외를 포착합니다.
  7. print(f"Loss of connectivity: {e}"): 이 코드 행은 콘솔에 오류 메시지를 인쇄하여 연결이 끊어진 원인을 알 수 있습니다.
  8. print("Possible fixes:"): 이 코드 줄은 연결 손실에 대한 몇 가지 가능한 수정 사항을 제안하는 메시지를 콘솔에 인쇄합니다.
  9. return False: 이 코드 줄은 인터넷이 연결되어 있지 않음을 나타내는 False 값을 반환합니다.
  10. except socket.timeout as e:: 이 코드 블록은 socket.timeout웹 사이트에 대한 연결을 설정하는 데 너무 오래 걸릴 때 발생하는 예외를 포착합니다.
  11. except requests.ConnectTimeout as e:및 except requests.ReadTimeout as e:: 이 코드 블록은 각각 웹 사이트에 대한 연결이 데이터를 설정하거나 읽는 데 너무 오래 걸릴 때 발생하는 예외를 포착합니다 requests.ConnectTimeout.requests.ReadTimeout
  12. if check_internet_connectivity():: 이 코드 줄은 함수가 check_internet_connectivity()True를 반환하는지 확인합니다. 그렇다면 "인터넷이 연결되었습니다."라고 인쇄됩니다.
  13. sys.exit(0): 이 코드 줄은 스크립트의 종료 상태를 0으로 설정하여 스크립트가 성공적으로 완료되었고 인터넷이 연결되었음을 나타내는 데 사용됩니다.
  14. sys.exit(1): 이 코드 줄은 스크립트의 종료 상태를 1로 설정하는 데 사용되며, 이는 스크립트가 완료되었지만 인터넷이 연결되지 않았음을 나타냅니다.
  15. if check_internet_connectivity():: 이 코드 줄은 함수가 check_internet_connectivity()False를 반환하는지 확인합니다. 그렇다면 "인터넷이 연결되지 않았습니다."라고 인쇄됩니다.

시간을 내어 제 블로그를 읽어주셔서 감사합니다. 제공된 정보가 귀하에게 유익하고 유용했기를 바랍니다. :) 더 알고 싶은 것이 있거나 궁금한 점이 있으면 언제든지 문의해 주세요.