mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-23 21:11:08 +00:00
Update and rename check_valid_ip_address.py to is_ip_v4_address_valid.py (#4665)
* Update and rename check_valid_ip_address.py to is_ip_v4_address_valid.py New test cases that the algorithm must detect: * [ ] an octet much bigger than 255 * [ ] an octet is negative * [ ] number of octets is less than 4 * [ ] number of octets is greater than 4 * [ ] an octet is a letter * updating DIRECTORY.md * Add two more tests to is_ip_v4_address_valid.py Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Co-authored-by: John Law <johnlaw.po@gmail.com>
This commit is contained in:
parent
abc725f12d
commit
dc07a85076
|
@ -424,7 +424,6 @@
|
||||||
* [Binomial Distribution](https://github.com/TheAlgorithms/Python/blob/master/maths/binomial_distribution.py)
|
* [Binomial Distribution](https://github.com/TheAlgorithms/Python/blob/master/maths/binomial_distribution.py)
|
||||||
* [Bisection](https://github.com/TheAlgorithms/Python/blob/master/maths/bisection.py)
|
* [Bisection](https://github.com/TheAlgorithms/Python/blob/master/maths/bisection.py)
|
||||||
* [Ceil](https://github.com/TheAlgorithms/Python/blob/master/maths/ceil.py)
|
* [Ceil](https://github.com/TheAlgorithms/Python/blob/master/maths/ceil.py)
|
||||||
* [Check Valid Ip Address](https://github.com/TheAlgorithms/Python/blob/master/maths/check_valid_ip_address.py)
|
|
||||||
* [Chudnovsky Algorithm](https://github.com/TheAlgorithms/Python/blob/master/maths/chudnovsky_algorithm.py)
|
* [Chudnovsky Algorithm](https://github.com/TheAlgorithms/Python/blob/master/maths/chudnovsky_algorithm.py)
|
||||||
* [Collatz Sequence](https://github.com/TheAlgorithms/Python/blob/master/maths/collatz_sequence.py)
|
* [Collatz Sequence](https://github.com/TheAlgorithms/Python/blob/master/maths/collatz_sequence.py)
|
||||||
* [Combinations](https://github.com/TheAlgorithms/Python/blob/master/maths/combinations.py)
|
* [Combinations](https://github.com/TheAlgorithms/Python/blob/master/maths/combinations.py)
|
||||||
|
@ -454,6 +453,7 @@
|
||||||
* [Greedy Coin Change](https://github.com/TheAlgorithms/Python/blob/master/maths/greedy_coin_change.py)
|
* [Greedy Coin Change](https://github.com/TheAlgorithms/Python/blob/master/maths/greedy_coin_change.py)
|
||||||
* [Hardy Ramanujanalgo](https://github.com/TheAlgorithms/Python/blob/master/maths/hardy_ramanujanalgo.py)
|
* [Hardy Ramanujanalgo](https://github.com/TheAlgorithms/Python/blob/master/maths/hardy_ramanujanalgo.py)
|
||||||
* [Integration By Simpson Approx](https://github.com/TheAlgorithms/Python/blob/master/maths/integration_by_simpson_approx.py)
|
* [Integration By Simpson Approx](https://github.com/TheAlgorithms/Python/blob/master/maths/integration_by_simpson_approx.py)
|
||||||
|
* [Is Ip V4 Address Valid](https://github.com/TheAlgorithms/Python/blob/master/maths/is_ip_v4_address_valid.py)
|
||||||
* [Is Square Free](https://github.com/TheAlgorithms/Python/blob/master/maths/is_square_free.py)
|
* [Is Square Free](https://github.com/TheAlgorithms/Python/blob/master/maths/is_square_free.py)
|
||||||
* [Jaccard Similarity](https://github.com/TheAlgorithms/Python/blob/master/maths/jaccard_similarity.py)
|
* [Jaccard Similarity](https://github.com/TheAlgorithms/Python/blob/master/maths/jaccard_similarity.py)
|
||||||
* [Kadanes](https://github.com/TheAlgorithms/Python/blob/master/maths/kadanes.py)
|
* [Kadanes](https://github.com/TheAlgorithms/Python/blob/master/maths/kadanes.py)
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
"""
|
|
||||||
Checking valid Ip Address.
|
|
||||||
A valid IP address must be in the form of A.B.C.D,
|
|
||||||
where A,B,C and D are numbers from 0-254
|
|
||||||
for example: 192.168.23.1, 172.254.254.254 are valid IP address
|
|
||||||
192.168.255.0, 255.192.3.121 are Invalid IP address
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
def check_valid_ip(ip: str) -> bool:
|
|
||||||
"""
|
|
||||||
print "Valid IP address" If IP is valid.
|
|
||||||
or
|
|
||||||
print "Invalid IP address" If IP is Invalid.
|
|
||||||
|
|
||||||
>>> check_valid_ip("192.168.0.23")
|
|
||||||
True
|
|
||||||
|
|
||||||
>>> check_valid_ip("192.255.15.8")
|
|
||||||
False
|
|
||||||
|
|
||||||
>>> check_valid_ip("172.100.0.8")
|
|
||||||
True
|
|
||||||
|
|
||||||
>>> check_valid_ip("254.255.0.255")
|
|
||||||
False
|
|
||||||
"""
|
|
||||||
ip1 = ip.replace(".", " ")
|
|
||||||
list1 = [int(i) for i in ip1.split() if i.isdigit()]
|
|
||||||
count = 0
|
|
||||||
for i in list1:
|
|
||||||
if i > 254:
|
|
||||||
count += 1
|
|
||||||
break
|
|
||||||
if count:
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
ip = input()
|
|
||||||
output = check_valid_ip(ip)
|
|
||||||
if output is True:
|
|
||||||
print(f"{ip} is a Valid IP address")
|
|
||||||
else:
|
|
||||||
print(f"{ip} is an Invalid IP address")
|
|
56
maths/is_ip_v4_address_valid.py
Normal file
56
maths/is_ip_v4_address_valid.py
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
"""
|
||||||
|
Is IP v4 address valid?
|
||||||
|
A valid IP address must be four octets in the form of A.B.C.D,
|
||||||
|
where A,B,C and D are numbers from 0-254
|
||||||
|
for example: 192.168.23.1, 172.254.254.254 are valid IP address
|
||||||
|
192.168.255.0, 255.192.3.121 are invalid IP address
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def is_ip_v4_address_valid(ip_v4_address: str) -> bool:
|
||||||
|
"""
|
||||||
|
print "Valid IP address" If IP is valid.
|
||||||
|
or
|
||||||
|
print "Invalid IP address" If IP is invalid.
|
||||||
|
|
||||||
|
>>> is_ip_v4_address_valid("192.168.0.23")
|
||||||
|
True
|
||||||
|
|
||||||
|
>>> is_ip_v4_address_valid("192.255.15.8")
|
||||||
|
False
|
||||||
|
|
||||||
|
>>> is_ip_v4_address_valid("172.100.0.8")
|
||||||
|
True
|
||||||
|
|
||||||
|
>>> is_ip_v4_address_valid("254.255.0.255")
|
||||||
|
False
|
||||||
|
|
||||||
|
>>> is_ip_v4_address_valid("1.2.33333333.4")
|
||||||
|
False
|
||||||
|
|
||||||
|
>>> is_ip_v4_address_valid("1.2.-3.4")
|
||||||
|
False
|
||||||
|
|
||||||
|
>>> is_ip_v4_address_valid("1.2.3")
|
||||||
|
False
|
||||||
|
|
||||||
|
>>> is_ip_v4_address_valid("1.2.3.4.5")
|
||||||
|
False
|
||||||
|
|
||||||
|
>>> is_ip_v4_address_valid("1.2.A.4")
|
||||||
|
False
|
||||||
|
|
||||||
|
>>> is_ip_v4_address_valid("0.0.0.0")
|
||||||
|
True
|
||||||
|
|
||||||
|
>>> is_ip_v4_address_valid("1.2.3.")
|
||||||
|
False
|
||||||
|
"""
|
||||||
|
octets = [int(i) for i in ip_v4_address.split(".") if i.isdigit()]
|
||||||
|
return len(octets) == 4 and all(0 <= int(octet) <= 254 for octet in octets)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
ip = input().strip()
|
||||||
|
valid_or_invalid = "valid" if is_ip_v4_address_valid(ip) else "invalid"
|
||||||
|
print(f"{ip} is a {valid_or_invalid} IP v4 address.")
|
Loading…
Reference in New Issue
Block a user