2011-09-30 55 views
0

需要计算IP => INT就像在这里:翻译一行请从蟒蛇红宝石

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

我在红宝石很新,所以不能转化为红宝石这样的:

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

结构插座是蟒蛇性病,IP就像是 '127.0.0.1'

字符串
+0

要密切选民:以何种方式为这个问题“难以确定”?这个问题非常,非常清楚和精确。他希望python中特定行的等价ruby代码 - 并且在python中没有任何关于该行的含义。 – Arafangion

回答

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 
+0

这么简单,如此神奇。它再次证明了python更加明确:我可以猜测该行发生了什么。但是在ruby中很容易:) –