An IP address is a numerical label assigned to each device (e.g., computer, printer) participating in a computer network that uses the Internet Protocol for communication. There are two versions of the Internet protocol, and thus two versions of addresses. One of them is the IPv4 address.
print(len(inputString)) print(inputString) inputDivide = inputString.split('.') # '.'을 기준으로 문자열 분리 print(inputDivide)
# Test 1 # inputString = "1.1.1.1a" 의 케이스에서 에러가 났음 # 1a를 int로 처리하는 경우 에러가 발생! if len(inputDivide) != 4: # split을 하는 경우, '.' 가 3개가 아니면 ip가 아니기 때문에 갯수 제약 조건을 넣어줬음 print("False, Not 4 values") else: # 갯수가 맞는 경우 for i in range(len(inputDivide)): # 각 항몫을 판단 ifnot inputDivide[i]: # 값이 없는 경우 print("False, Empty string") else: ifnot int(inputDivide[i]): print("False, Not number") else: ifnot ((int(inputDivide[i]) >= 0) and (int(inputDivide[i]) <= 255)): # 값이 숫자 범위 내에 있지 않은 경우 print("False, Not in range") else: print("True")
# Test 2 # 0인 경우 False 값을 리턴하는 에러가 생겼음 if len(inputDivide) != 4: print("False, Not 4 values") else: for i in range(len(inputDivide)): try: ifnot int(inputDivide[i])): # 이렇게 하니까 0인 경우 False가 나옴 print("False, Not number") else: ifnot ((int(inputDivide[i]) >= 0) and (int(inputDivide[i]) <= 255)): print("False, Not in range") else: print("True") except: print("False, Not number")
# Test 3 # 최종 제출 코드 if len(inputDivide) != 4: print("False, Not 4 values") else: for i in range(len(inputDivide)): ifnot inputDivide[i]: print("False, Empty string") else: try: ifnot ((int(inputDivide[i]) >= 0) and (int(inputDivide[i]) <= 255)): print("False, Not in range") else: print("True") except: print("False, Not number")