Python 유효성 검사 IP 주소

Fariba Laiq 2023년6월21일
  1. Python에서 IP 주소 유효성 검사
  2. ipaddress 모듈을 사용하여 Python에서 IP 주소 유효성 검사
  3. Python에서 RegEx.search() 메서드를 사용하여 IP 주소 유효성 검사
  4. Python에서 수동으로 IP 주소 유효성 검사
Python 유효성 검사 IP 주소

IP는 Internet Protocol의 약자로 인터넷에 연결된 모든 컴퓨터에 할당된 고유한 주소입니다. IPv4IPv6이라는 두 가지 버전의 IP 주소가 있습니다.

IPv4는 점으로 구분된 10진수 표기법으로 표시되며 각 옥텟은 0에서 255까지의 숫자를 포함하는 4개의 옥텟으로 구성됩니다. IPv6 주소는 각각 16비트를 나타내는 4개의 16진수로 구성된 8개의 그룹을 포함합니다.

콜론은 그룹을 구분합니다(:). 이 가이드에서는 IPv4 주소의 유효성을 검사합니다.

Python에서 IP 주소 유효성 검사

IP 주소를 확인한다는 것은 입력한 IP가 유효한지 확인하는 것을 의미합니다.

예를 들어:

Input: 192.168.52.124
Output: Valid IP address

Input: 656.1.2.3
Output: Invalid IP address

ipaddress 모듈을 사용하여 Python에서 IP 주소 유효성 검사

ipaddress는 유형(IPv4 또는 IPv6)에 따라 IP 주소를 확인하고 분류하는 데 사용되는 Python의 모듈입니다. 또한 산술 연산, 비교 등과 같은 다양한 작업을 수행합니다.

이 모듈에는 IP 주소를 확인하는 ip_address()라는 메서드가 있습니다. 이 함수는 문자열 IP를 입력으로 받으며 문자열 IP를 IPv4 또는 IPv6 주소의 객체로 성공적으로 변환할 수 있으면 입력된 IP 주소가 유효한 것입니다.

그렇지 않으면 IP가 IPv4 또는 IPv6 주소로 나타나지 않는다는 값 오류가 발생합니다. 다음 코드에서 ipaddress 모듈을 가져오고 try-except 블록에 전체 코드를 작성했습니다.

IP가 유효하면 예외가 발생하지 않으며 그렇지 않으면 except 블록에서 값 오류 예외를 처리합니다.

사례 1: 유효한 IP 주소의 경우

# Python 3.x
import ipaddress

try:
    ip = ipaddress.ip_address("192.168.1.1")
    print("Valid IP Address")
except ValueError:
    print("Invalid IP Address")

출력:

#Python 3.x
Valid IP Address

사례 2: 잘못된 IP 주소의 경우

# Python 3.x
import ipaddress

try:
    ip = ipaddress.ip_address("992.168.1.1")
    print("Valid IP Address")
except ValueError:
    print("Invalid IP Address")

출력:

#Python 3.x
Invalid IP Address

Python에서 RegEx.search() 메서드를 사용하여 IP 주소 유효성 검사

IP 주소의 유효성을 검사하는 또 다른 방법은 정규식을 통해 유효한 IP 주소의 미리 정의된 패턴과 일치시키는 것입니다. re 모듈의 search() 메서드를 호출하여 다음 코드에서 IP 주소의 유효성을 검사하고 정규식과 IP를 인수로 전달했습니다.

이 메서드는 IP가 유효한 경우 True를 반환합니다. 그렇지 않으면 False를 반환합니다.

예제 코드:

# Python 3.x
import re

ip = "192.168.2.3"
regex = "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$"
if re.search(regex, ip):
    print("Valid IP Address")
else:
    print("Invalid IP Address")

출력:

#Python 3.x
Valid IP Address

Python에서 수동으로 IP 주소 유효성 검사

내장 라이브러리 정규식 없이 IP 주소를 확인할 수 있습니다. 다음 코드에서 이 세 가지 조건을 확인하여 IP 주소를 검증하는 함수를 만들었습니다.

코드에서 다음 조건이 True인 경우 IP가 유효하지 않습니다.

  1. 옥텟의 수가 4개가 아니다.
  2. 모든 옥텟은 정수 이외의 것을 포함합니다.
  3. 옥텟 내의 모든 숫자는 0-255 범위 밖에 있습니다.

예제 코드:

# Python 3.x
def validate_ip_address(ip):
    octects = ip.split(".")
    if len(octects) != 4:
        return "Invalid IP"
    for number in octects:
        if not isinstance(int(number), int):
            return "Invalid IP"
        if int(number) < 0 or int(number) > 255:
            return "Invalid IP"
    return "Valid IP"


validate_ip_address("192.168.-1.1")

출력:

#Python 3.x
'Invalid IP'
작가: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

관련 문장 - Python IP Address