파이썬, IP 유효성 확인 (IPv4, IPv6)
글. 수알치 오상문
[방법 1]
import ipaddress
def is_valid_ip(ip):
try:
ipaddress.ip_address(ip)
return True
except ValueError:
return False
if __name__ == "__main__":
# IPv4 테스트
ipv4_address = "192.168.1.1"
assert is_valid_ip(ipv4_address) is True
invalid_ipv4_address = "256.256.256.256"
assert is_valid_ip(invalid_ipv4_address) is False
# IPv6 테스트
ipv6_address = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
assert is_valid_ip(ipv6_address) is True
invalid_ipv6_address = "not_an_ipv6_address"
assert is_valid_ip(invalid_ipv6_address) is False
print("All tests passed!")
[방법 2]
import socket
def is_valid_ip(ip):
try: # IPv4 주소 검사
socket.inet_pton(socket.AF_INET, ip)
return True
except socket.error:
try: # IPv6 주소 검사
socket.inet_pton(socket.AF_INET6, ip)
return True
except socket.error:
return False
if __name__ == "__main__":
# IPv4 테스트
ipv4_address = "192.168.1.1"
assert is_valid_ip(ipv4_address) is True
invalid_ipv4_address = "256.256.256.256"
assert is_valid_ip(invalid_ipv4_address) is False
# IPv6 테스트
ipv6_address = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
assert is_valid_ip(ipv6_address) is True
invalid_ipv6_address = "not_an_ipv6_address"
assert is_valid_ip(invalid_ipv6_address) is False
print("All tests passed!")
[방법 3] 정규식 사용
# 생략
'Python 활용' 카테고리의 다른 글
Sqlalchemy ORM, order_by에 case 이용 예제 (1) | 2023.12.12 |
---|---|
Python으로 만나보는 디지털 포렌식 Digital Forensic (0) | 2023.11.13 |
파이썬, JSON Schema Validation (0) | 2023.11.05 |
파이썬에서 Go 함수 호출하기 (0) | 2023.10.30 |
파이썬, ctypes 이용한 C 프로그램 호출 (0) | 2023.10.29 |