# Convert IP address to long

Hi,

I want to compare two IP addresses so I want to convert them to long
integers. Can anyone tell me how it can be done? I need to convert IP
address to long and after I have to convert them back to IP address.

Ashwin Kumar Sharma wrote:

Hi,

I want to compare two IP addresses so I want to convert them to long
integers. Can anyone tell me how it can be done? I need to convert IP
address to long and after I have to convert them back to IP address.

The above site might help u convert a static IP to long. But I don’t
have an answer for a ruby code which converts an IP address into its
long form.

Ashwin Kumar Sharma wrote:

Hi,

I want to compare two IP addresses so I want to convert them to long
integers. Can anyone tell me how it can be done? I need to convert IP
address to long and after I have to convert them back to IP address.

IP address are 4 bytes represented in a dotted decimal format.

Example:

# 22.125.33.145

145 + (33 * 28) + (125 * 216) + (22 * 2**24)
=> 377299345

Robert W. wrote:

Ashwin Kumar Sharma wrote:

Hi,

I want to compare two IP addresses so I want to convert them to long
integers. Can anyone tell me how it can be done? I need to convert IP
address to long and after I have to convert them back to IP address.

IP address are 4 bytes represented in a dotted decimal format.

Example:

# 22.125.33.145

145 + (33 * 28) + (125 * 216) + (22 * 2**24)
=> 377299345

Thanks a lot Robert.

Ashwin Kumar Sharma wrote:

Robert W. wrote:

Ashwin Kumar Sharma wrote:

Hi,

I want to compare two IP addresses so I want to convert them to long
integers. Can anyone tell me how it can be done? I need to convert IP
address to long and after I have to convert them back to IP address.

IP address are 4 bytes represented in a dotted decimal format.

Example:

# 22.125.33.145

145 + (33 * 28) + (125 * 216) + (22 * 2**24)
=> 377299345

Hi,

I could convert the IP address to long format using the above logic, can
any one tell how can I convert the long format back to IP address. I did
search for the API I didn’t get any. Is there any API which does it in
Rails or any logic to which can do it like above(Equivalent APIs for
long2ip and ip2long PHP built in Rails).

Hi,

I want to compare two IP addresses so I want to convert them to long
integers. Can anyone tell me how it can be done? I need to convert IP
address to long and after I have to convert them back to IP address.

IP address are 4 bytes represented in a dotted decimal format.

Example:

# 22.125.33.145

145 + (33 * 28) + (125 * 216) + (22 * 2**24)
=> 377299345

Hi,

I could convert the IP address to long format using the above logic, can
any one tell how can I convert the long format back to IP address. I did
search for the API I didn’t get any. Is there any API which does it in
Rails or any logic to which can do it like above(Equivalent APIs for
long2ip and ip2long PHP built in Rails).

Hi all,

Thanks for your time, I could find out the solution for the above issue.
Using this functions i converted implement ip2long and long2ip

def ip2long(ip)
long = 0
ip.split(/./).each_with_index do |b, i|
long += b.to_i << ( 8*i )
end
long
end

def long2ip(long)
ip = []
4.times do |i|
ip.push(long.to_i & 255)
long = long.to_i >> 8
end
ip.join(".")
end

If any one know any API to do this please get it.

Regards.