请从python到ruby翻译一行

时间:2011-09-30 04:32:13

标签: python ruby sockets struct ip

需要计算IP => int就像在这里:

https://bitbucket.org/lorien/django-ipgeo/src/d19648c9b14f/ipgeo/models.py 但是在红宝石中。

我是红宝石的新手,所以无法将其转化为红宝石:

number = struct.unpack('!L', socket.inet_aton(ip))[0]

struct socket 是python std, ip 是一个类似'127.0.0.1'的字符串

1 个答案:

答案 0 :(得分:3)

Ruby带有一个ipaddr模块,它指定一个IPAddr类,它可以将表示形式返回整数。

require 'ipaddr'

addr = IPAddr.new '127.0.0.1'
print addr.to_i

此处位于irb

ruby-1.9.2-p290 :002 > require 'ipaddr'
 => true 
ruby-1.9.2-p290 :003 > addr = IPAddr.new '127.0.0.1'
 => #<IPAddr: IPv4:127.0.0.1/255.255.255.255> 
ruby-1.9.2-p290 :004 > addr.to_i
 => 2130706433