Python Examples
Convert IP to Integer and Integer To IP in Python How to Get IPv4/IPv6 Address Range from CIDR in Python? Compare Two Objects For Equality in Python How to find Duplicate Elements from a List in Python Convert Timestamp to datetime in Python Convert datetime to Timestamp in Python Generate Random String of Specific Length in Python Encryption and Decryption of Strings in Python The string module in Python Convert string to bytes in Python Convert bytes to string in Python Convert string to datetime and datetime to string in Python Call a function Asynchronously from within a Loop and wait for the Results in Python Remove Duplicate Elements from a List in Python Caching in Python with Examples How to Bulk Insert and Retrieve Data from Redis in Python How to Write Unit Test in Python Read and Write CSV Files in Python Read and Write Data to a Text File in Python How to Convert CSV to JSON in Python Create ICS Calendar File in Python Install Python on Windows 10/11 Install Python on Ubuntu 20.04 or 22.04.3 Python - Install Virtual Environment How to Find a Specific Field Value from a JSON list in Python Download and Unzip a Zipped File in Python Python Install PIP Python Install Virtual Environment How to Fix Python Error: string argument without an encoding Compare Two JSON files in Python How to Hash a Dictionary Object in Python? Create a Digital Clock in Python Create Multiple URLs Using Each Path of a URL in Python Send an Email with Multiple Attachments using Amazon SES in Python SQLAlchemy Query Examples for Effective Database Management SQLAlchemy Query to Find IP Addresses from an IP Range in Bulk How to Create and Use Configuration files in a Python Project Check if a Value Already Exists in a List of Dictionary Objects in Python How to Split Large Files by size in Python? Fixing - Running Scripts is Disabled on this System Error on Windows Generating QR Codes in Python Reading QR Codes in Python

Convert IP to Integer and Integer To IP in Python

  • Last updated Apr 25, 2024

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:
        if type(ipaddress.ip_address(string_ip)) is ipaddress.IPv4Address:
            return int(ipaddress.IPv4Address(string_ip))
        if type(ipaddress.ip_address(string_ip)) is ipaddress.IPv6Address:
            return int(ipaddress.IPv6Address(string_ip))
    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):
    return ipaddress.ip_address(int_ip).__str__()
Example

Here's complete running code:

import ipaddress

def ip_to_integer(string_ip):
    try:
        if type(ipaddress.ip_address(string_ip)) is ipaddress.IPv4Address:
            return int(ipaddress.IPv4Address(string_ip))
        if type(ipaddress.ip_address(string_ip)) is ipaddress.IPv6Address:
            return int(ipaddress.IPv6Address(string_ip))
    except Exception as e:
        return -1

def integer_to_ip(int_ip):
    return ipaddress.ip_address(int_ip).__str__()

# 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.