# Convert IP to Integer and Integer To IP in Python

Python provides ipaddress, a built-in module that allows to create, manipulate, and operate on IPv4 and IPv6 addresses and networks.

The classes and functions in the IP address module make it simple to perform a variety of IP address-related tasks, such as determining whether two hosts are on the same subnet, iterating over all hosts in a given subnet, determining whether a string represents a valid IP address or network definition, and so on.

### Converting IP to Integer

The following example code uses Python's ipaddress module to convert IPv4/IPv6 to integer:

```import ipaddress

def ip_to_integer(string_ip):
try:
except Exception as e:
return -1```

### Converting Integer to IP

To convert integer IP back to IPv4/IPv6, you can use the Python's ipaddress module as follows:

```import ipaddress

def integer_to_ip(int_ip):

### Example

Here's complete running code:

```import ipaddress

def ip_to_integer(string_ip):
try:
except Exception as e:
return -1

def integer_to_ip(int_ip):

# convert ip to integer
ip = "192.23.3.2"
ip_integer = ip_to_integer(ip)
print("The integer representation of %s ip is %s" % (ip, ip_integer))

# converting ip integer back to ip
original_ip = integer_to_ip(ip_integer)
print("Converting %s ip integer back to ip %s" % (ip_integer, original_ip))```

The above code gives the following output:

```The integer representation of 192.23.3.2 ip is 3222733570
Converting 3222733570 ip integer back to ip 192.23.3.2
```

You may also be interested in learning how to get IPv4/IPv6 Address Range from CIDR in Python.