从32位号码获取IP地址

时间:2013-07-10 12:18:22

标签: ruby csv ip

在ruby中,如何获取IP地址的32位数。它用于IpTOCountry.csv

e.g。 1.2.3.4 = 4 +(3 * 256)+(2 * 256 * 256)+(1 * 256 * 256 * 256) 是4 + 768 + 13,1072 + 16,777,216 = 16,909,060

所以,如果我有16,909,060。我怎样才能获得“1.2.3.4”。我只能使用标准的ruby库。

提前致谢

1 个答案:

答案 0 :(得分: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"