Точно так же, как в названии говорится, разыскиваемых для целей тестирования.
Каков самый короткий способ генерации случайного IP-адреса в Ruby?
Ответ 1
Вы можете использовать IPAddr
require 'ipaddr'
ipv4 = IPAddr.new(rand(2**32),Socket::AF_INET)
ipv6 = IPAddr.new(rand(2**128),Socket::AF_INET6)
Ответ 2
Если вы хотите действительно случайный IP-адрес, Array.new(4){rand(256)}.join('.')
делает это
Ответ 3
Я бы предложил использовать Faker
https://github.com/stympy/faker#fakerinternet
Faker::Internet.ip_v4_address #=> "24.29.18.175"
Ответ 4
ip = "%d.%d.%d.%d" % [rand(256), rand(256), rand(256), rand(256)]
Ответ 5
Я использовал это раньше, чтобы создать случайный ip, а затем проверить его с помощью Resolv
ip = "#{rand(99)}.#{rand(100)}.#{rand(10)}.#{rand(255)}"
begin
if ip
host = Resolv.new.getname(ip)
puts "#{c} #{real_ip.length} #{ip} #{host}"
end
rescue Exception => e
puts "FAKE #{ip}"
end
Ответ 6
Я собирался добавить комментарий Ласса с некоторым кодом, чтобы получить любой безопасный адрес RFC1918, но пока недостаточно репутации.
Итак, если мы возьмем следующие математические результаты:
10*2**24 = 167772160
172*2**24 + 16*2**16 = 2886729728
192*2**24 + 168*2**16 = 3232235520
и вставьте их в массив, который вставляется в метод IPAddr.new
IPAddr.new([167772160, 2886729728, 3232235520].sample + rand(2**16), Socket::AF_INET)
Большинство любого пространства RF1918 генерируется. К сожалению, это всегда будет давать адреса 10.0.XX, но это хорошо для тестирования, если кто-то искал какое-то разнообразие адресов в не слишком ужасно выглядящем однострочном формате.
Основным преимуществом такого метода или метода Lass по сравнению с Faker является снижение риска случайного обложения кем-либо интернет-ресурсов, если код пытается по какой-либо причине обратиться к случайному адресу.