|
| 1 | +""" |
| 2 | +Is IP v4 address valid? |
| 3 | +A valid IP address must be four octets in the form of A.B.C.D, |
| 4 | +where A,B,C and D are numbers from 0-254 |
| 5 | +for example: 192.168.23.1, 172.254.254.254 are valid IP address |
| 6 | + 192.168.255.0, 255.192.3.121 are invalid IP address |
| 7 | +""" |
| 8 | + |
| 9 | + |
| 10 | +def is_ip_v4_address_valid(ip_v4_address: str) -> bool: |
| 11 | + """ |
| 12 | + print "Valid IP address" If IP is valid. |
| 13 | + or |
| 14 | + print "Invalid IP address" If IP is invalid. |
| 15 | +
|
| 16 | + >>> is_ip_v4_address_valid("192.168.0.23") |
| 17 | + True |
| 18 | +
|
| 19 | + >>> is_ip_v4_address_valid("192.255.15.8") |
| 20 | + False |
| 21 | +
|
| 22 | + >>> is_ip_v4_address_valid("172.100.0.8") |
| 23 | + True |
| 24 | +
|
| 25 | + >>> is_ip_v4_address_valid("254.255.0.255") |
| 26 | + False |
| 27 | +
|
| 28 | + >>> is_ip_v4_address_valid("1.2.33333333.4") |
| 29 | + False |
| 30 | +
|
| 31 | + >>> is_ip_v4_address_valid("1.2.-3.4") |
| 32 | + False |
| 33 | +
|
| 34 | + >>> is_ip_v4_address_valid("1.2.3") |
| 35 | + False |
| 36 | +
|
| 37 | + >>> is_ip_v4_address_valid("1.2.3.4.5") |
| 38 | + False |
| 39 | +
|
| 40 | + >>> is_ip_v4_address_valid("1.2.A.4") |
| 41 | + False |
| 42 | +
|
| 43 | + >>> is_ip_v4_address_valid("0.0.0.0") |
| 44 | + True |
| 45 | +
|
| 46 | + >>> is_ip_v4_address_valid("1.2.3.") |
| 47 | + False |
| 48 | + """ |
| 49 | + octets = [int(i) for i in ip_v4_address.split(".") if i.isdigit()] |
| 50 | + return len(octets) == 4 and all(0 <= int(octet) <= 254 for octet in octets) |
| 51 | + |
| 52 | + |
| 53 | +if __name__ == "__main__": |
| 54 | + ip = input().strip() |
| 55 | + valid_or_invalid = "valid" if is_ip_v4_address_valid(ip) else "invalid" |
| 56 | + print(f"{ip} is a {valid_or_invalid} IP v4 address.") |
0 commit comments