0

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

例如 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​​ 库。

提前致谢

4

1 回答 1

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"
于 2013-07-10T12:20:47.240 回答