inet_aton / inet_ntoa

F

Franz Bettag

Hi guys,

i have a big problem with ruby + inet_aton.
Since IPAddr has the to_i function it can convert IPAddrs to integers
(inet_aton). But i didn't find any function that reverses this
(inet_ntoa).. And without such a function, i can't work =)

Any ideas?

thanks!
--


Mit freundlichen Grüßen / best regards

Franz Bettag

____________________________
QS Housing
Franz Bettag
Ludwigstr. 45-47
90402 Nürnberg
http://www.qs-housing.net

Tel: +49 1805 737376 664
Fax: +49 1805 737376 665
 
A

ara.t.howard

Hi guys,

i have a big problem with ruby + inet_aton. Since IPAddr has the to_i
function it can convert IPAddrs to integers (inet_aton). But i didn't find
any function that reverses this (inet_ntoa).. And without such a function,
i can't work =)

Any ideas?

thanks!

maybe this will work


harp:~ > cat a.rb
def inet_aton ip
ip.split(/\./).map{|c| c.to_i}.pack("C*").unpack("N").first
end
def inet_ntoa n
[n].pack("N").unpack("C*").join "."
end


ip = "255.127.63.31"
n = inet_aton ip

puts n
puts n.to_s(2)

a = inet_ntoa n
puts a

puts(inet_ntoa(inet_aton(ip)))


harp:~ > ruby a.rb
4286529311
11111111011111110011111100011111
255.127.63.31
255.127.63.31

i can't remember if that's exactly how those work - but i thinks that's right.

hth.

-a
 
C

Claudio Jeker

Hi guys,

i have a big problem with ruby + inet_aton.
Since IPAddr has the to_i function it can convert IPAddrs to integers
(inet_aton). But i didn't find any function that reverses this
(inet_ntoa).. And without such a function, i can't work =)

Any ideas?

require "ipaddr"

IPAddr.new("192.168.42.21").to_i
=> 3232246293
IPAddr.new(3232246293, Socket::AF_INET).to_s
=> "192.168.42.21"

Same works for Socket::AF_INET6.

Additionally you can do:

IPAddr.new_ntoh([ 3232246293 ].pack("N"))
=> #<IPAddr: IPv4:192.168.42.21/255.255.255.255>

IPAddr::new_ntoh creates a new ipaddr containing the given network byte
ordered string form of an IP address.
 
F

Franz Bettag

Thanks to both of you! :)


Claudio said:
Hi guys,

i have a big problem with ruby + inet_aton.
Since IPAddr has the to_i function it can convert IPAddrs to integers
(inet_aton). But i didn't find any function that reverses this
(inet_ntoa).. And without such a function, i can't work =)

Any ideas?


require "ipaddr"

IPAddr.new("192.168.42.21").to_i
=> 3232246293
IPAddr.new(3232246293, Socket::AF_INET).to_s
=> "192.168.42.21"

Same works for Socket::AF_INET6.

Additionally you can do:

IPAddr.new_ntoh([ 3232246293 ].pack("N"))
=> #<IPAddr: IPv4:192.168.42.21/255.255.255.255>

IPAddr::new_ntoh creates a new ipaddr containing the given network byte
ordered string form of an IP address.


--


Mit freundlichen Grüßen

Franz Bettag

____________________________
QS Housing
Franz Bettag
Ludwigstr. 45-47
90402 Nürnberg
http://www.qs-housing.net

Tel: +49 1805 737376 664
Fax: +49 1805 737376 665
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,202
Messages
2,571,057
Members
47,667
Latest member
DaniloB294

Latest Threads

Top