# Validate IP Address using RegEx in Python

Problem Statement: Write a Python program to validate if the given string is a valid IP address or not.

This is one of the questions asked in the Juniper coding interview.

In Computer Network, the IP address uniquely defines each host or node in the network. You can read mode about IP address in Computer Networking.

Basically, this is a pattern matching problem where we can use a regular expression (RegEx).

### IP Address Validation using Python RegEx

Here we are using the search method from the re module. You can find more detail in the Python RegEx tutorial.

#### Method 1: Using RegEx

Code

```import re

regexIP = '''^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)\.(
25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)\.(
25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)\.(
25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)'''

def validateIP(strIP):

if(re.search(regexIP, strIP)):
print(f"{strIP} is a valid IP address.")

else:
print(f"{strIP} is an invalid IP address.")

if __name__ == '__main__' :

strIP = "122.134.3.123"
validateIP(strIP)

strIP = "44.235.34.1"
validateIP(strIP)

strIP = "277.13.23.17"
validateIP(strIP) ```

Output

```122.134.3.123 is a valid IP address.
44.235.34.1 is a valid IP address.
277.13.23.17 is an invalid IP address.```

Note: When we say IP address, by default it’s IPv4 address which is different from IPv6 address.

#### Method 2: Without RegEx

Python Code:

(This solution is shared by Mallikarjuna.)

```def validate_ip(ip):
part = ip.split(".")
if not (len(part) == 4):
return False
for i in part:
if int(i) > 255:
return False
if not isinstance(int(i),int):
return False
return True

if __name__ == "__main__":
ip = "10.10.10.40"
out = validate_ip(ip)
if out:
print(f"{ip} is valid IP.")
else:
print(f"{ip} is invalid IP.")```

This is a simple program to validate IP address using regex in Python. Do you have any other solutions? Let me know in the comment. Thanks!

1. Rajat says:

It says it’s valid – 122.134.3.0991 is a valid IP address.

Can you test with this string – strIP = “122.134.3.0991”?

1. Thanks for identifying it. Looks like we also have to check the length of each octave.

2. Malan says:

Just add \$ in the end.

3. Mallikarjuna says:
```out = "10.10.10.40"
part = out.split(".")
if len(part) > 4:
print("invalid")
for i in part:
if int(i)  255:
print("invalid")
if not isinstance(int(i),int):
print("invalid")
print("valid")
```
1. This is a truly simple and easy solution. Thanks for sharing. Here problem statement is to write the regex expression to check the valid IP address.

1. Raamesh says:
```#ip = "122.134.3.0991"
ip ="10.49.121.22"
part = ip.split(".")
if len(part) == 4:
print('''It's a Valid IPv4 format''')
c=0
for i in part:
if int(i) < 255:
c = c+1
if c == 4:
else:

else:
print("""It's completely an Invalid IPv4 format""")
```
4. Raamesh says:
```import re
c=0