2013-07-10 115 views
0

在ruby中,如何獲得IP地址的32位數。它用於IpTOCountry.csv從32位數獲得IP地址

例如, 1.2.3.4 = 4 +(3 * 256)+(2 * 256 * 256)+(1 * 256 * 256 * 256) 是4 + 768 + 13,1072 + 16777216 = 16909060

所以,如果我有16,909,060。我怎樣才能得到「1.2.3.4」。我只能使用標準的Ruby庫。

在此先感謝

回答

4

您可以使用IPAddr類:

require "ipaddr" 
IPAddr.new("1.2.3.4").to_i 
# => 16909060 

倒過來:

ip = IPAddr.new(16909060, Socket::AF_INET) 
# => #<IPAddr: IPv4:1.2.3.4/255.255.255.255> 
ip.to_s 
# => "1.2.3.4"