Al igual que el título dice, querido para fines de prueba.¿Cuál es la forma más corta de generar una dirección IP aleatoria en Ruby?
Gracias!
Al igual que el título dice, querido para fines de prueba.¿Cuál es la forma más corta de generar una dirección IP aleatoria en Ruby?
Gracias!
Usted podría utilizar IPAddr
require 'ipaddr'
ipv4 = IPAddr.new(rand(2**32),Socket::AF_INET)
ipv6 = IPAddr.new(rand(2**128),Socket::AF_INET6)
ip = "%d.%d.%d.%d" % [rand(256), rand(256), rand(256), rand(256)]
que no siempre va a generar una dirección válida. (En raras ocasiones, podría generar '0.0.0.0' o' 255.255.255.255' que no son direcciones válidas) –
¿Estas dos direcciones rompen alguna regla? Se ven bien para mí. Como OP solo hizo una pregunta vaga, esos dos son tan buenos como cualquier otro. – dbasnett
Si mal no recuerdo, son buenos números de IP pero están preasignados para transmisiones de red. Ninguna máquina puede tener una IP de 0.0.0.0 o 255.255.255.255, pero pueden responder a las solicitudes de esos números. Si eso tiene sentido en una aplicación, entonces está bien usarlos. Consulte http://en.wikipedia.org/wiki/Broadcast_address para obtener más información. –
Si desea una dirección IP verdaderamente aleatoria, Array.new(4){rand(256)}.join('.')
lo hace
he utilizado esto antes de generar una IP al azar y luego valide con 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
Yo sugeriría usar Faker
https://github.com/stympy/faker#fakerinternet
Faker::Internet.ip_v4_address #=> "24.29.18.175"
esto es bastante increíble, en realidad ... ¿está activo y mantenido? Al igual que tiene IPv4 y 6 y URI. – Angela
Aunque no estoy muy familiarizado con la biblioteca, recomendaría 'Faker' también. Mi razón principal es que esta biblioteca parece haber sido creada para su caso de uso. [Los documentos] (https://github.com/styles/faker#fakerinternet) también sugieren que también maneja direcciones IP especiales. – Aaron
Tenga en cuenta que esto puede generar direcciones comenzando con 0, que por supuesto (RFC3330) no es válido. – mdrozdziel
ya que los 0s iniciales no son los ideales, recomendaría la matriz de respuestas debajo de –
Para estar en el lado seguro, esto genera direcciones IPv4 válidas de la subred privada ** 10.xxx **: 'IPAddr.new (10 * 2 ** 24 + rand (2 ** 24), Socket :: AF_INET) ' – Laas