>>>> 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 * 2**8) + (125 * 2**16) + (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).
>
> Thanks in advance.
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.
--
Posted via http://www.ruby-forum.com/.
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.